[發明專利]對象的析構方法、介質、裝置和計算設備有效
| 申請號: | 201710966413.9 | 申請日: | 2017-10-17 |
| 公開(公告)號: | CN107741891B | 公開(公告)日: | 2020-12-08 |
| 發明(設計)人: | 陶澤宇 | 申請(專利權)人: | 網易(杭州)網絡有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14;G06F11/34;G06F9/448 |
| 代理公司: | 北京律智知識產權代理有限公司 11438 | 代理人: | 王衛忠;劉文潔 |
| 地址: | 310052 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 對象 方法 介質 裝置 計算 設備 | ||
1.一種對象的析構方法,包括:
在目標對象的生命周期結束時,對所述目標對象進行延時析構;
在對所述目標對象進行延時析構的時間段內,將原本發送給所述目標對象的方法轉發至一空函數指針;
判斷程序是否切換至后臺運行和判斷延時析構的目標對象的數量是否達到預定數量;
在判定所述程序切換至后臺運行和判定延時析構的目標對象的數量達到所述預定數量時,調用延時析構的目標對象原有的釋放內存的函數對所述目標對象進行析構;
其中,將原本發送給所述目標對象的方法轉發至一空函數指針的步驟,包括:
將所述目標對象的函數指針所指向的類修改為指定類,并將所述目標對象的原始類的類名保存至所述目標對象中;其中,所述函數指針原本指向所述目標對象的原始類;
基于所述指定類攔截原本發送給所述目標對象的方法,并轉發至所述空函數指針。
2.根據權利要求1所述的方法,還包括:
判斷程序中的各個對象是否需要進行野指針防護;
若判定所述程序中的任一對象需要進行野指針防護,則對所述任一對象添加標識,并將添加了所述標識的對象作為所述目標對象。
3.根據權利要求2所述的方法,其中,根據所述各個對象的類型,判斷所述各個對象是否需要進行野指針防護。
4.根據權利要求2所述的方法,其中,判斷程序中的各個對象是否需要進行野指針防護的步驟,包括:
通過定義的新的方法替換用于創建所述各個對象的方法;
在所述新的方法中判斷所述各個對象是否需要進行野指針防護。
5.根據權利要求2所述的方法,其中,對所述任一對象添加標識的步驟,包括:
基于動態添加關聯對象的函數對所述任一對象添加所述標識。
6.根據權利要求1所述的方法,還包括:
在確定對所述目標對象進行延時析構時,釋放所述目標對象引用的相關屬性。
7.根據權利要求1所述的方法,其中,基于所述指定類攔截原本發送給所述目標對象的方法,并轉發至所述空函數指針的步驟,包括:
通過所述指定類中的消息轉發函數攔截原本發送給所述目標對象的方法,并返回一對象類;
向所述對象類動態添加類方法,并將所述類方法的指針指向空函數。
8.根據權利要求1所述的方法,還包括:
獲取保存在所述目標對象中的原始類的類名;
根據獲取到的類名,統計程序在運行過程中出現的錯誤數據。
9.一種介質,其上存儲有程序,該程序被處理器執行時實現如權利要求1至8中任一項所述的方法。
10.一種對象的析構裝置,包括:
析構單元,用于在目標對象的生命周期結束時,對所述目標對象進行延時析構;
處理單元,用于在對所述目標對象進行延時析構的時間段內,將原本發送給所述目標對象的方法轉發至一空函數指針;
第二判斷單元,用于判斷程序是否切換至后臺運行和判斷延時析構的目標對象的數量是否達到預定數量;
在判定所述程序切換至后臺運行和判定延時析構的目標對象的數量達到所述預定數量時,調用延時析構的目標對象原有的釋放內存的函數對所述目標對象進行析構;
其中,處理單元包括:
修改單元,用于將所述目標對象的函數指針所指向的類修改為指定類,并將所述目標對象的原始類的類名保存至所述目標對象中;其中,所述函數指針原本指向所述目標對象的原始類;
攔截單元,用于基于所述指定類攔截原本發送給所述目標對象的方法,并轉發至所述空函數指針。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于網易(杭州)網絡有限公司,未經網易(杭州)網絡有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710966413.9/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種備份管理方法及裝置
- 下一篇:一種應用進程的監控方法和裝置





