- 2
- 0
- 约6.99千字
- 约 11页
- 2017-02-11 发布于北京
- 举报
由TObject原码对类的内存分配
由TObject原码对类的内存分配
一、分析TObject原码
1.1 1.1 看Delphi之祖TObject究竟干了些什么?
1.1.1 1.1.1 类的实例化
???
?class function InitInstance(Instance: Pointer): TObject;
?class function NewInstance: TObject; virtual;
??? 这两个方法实现了对类的实例化,其中由
function _ClassCreate(AClass: TClass; Alloc: Boolean): TObject;asm{ - EAX = pointer to VMT }{ - EAX = pointer to instance }PUSH EDXPUSH ECXPUSH EBXTEST DL,DLJL @@noAllocCALL DWORD PTR [EAX] + VMTOFFSET TObject.NewInstance? ......
??? 当然类实例的释放,就由下面CleanupInstance和FreeInstance两个函数完成了,同理他们的实现原理大家也可以猜到了,这里就不多说了。
1.1.2 1.1.2 对象的初始化
??? 由于这部分大家都明白,在
1.1.3 1.1.3 vmt表、实例内存段和对象域关系
原创力文档

文档评论(0)