* removed and replaced by other files

This commit is contained in:
carl 2002-05-05 13:54:43 +00:00
parent 1cd2d7afdd
commit 463476932c

View File

@ -1,228 +0,0 @@
{$mode objfpc}
type
{ object with vmt }
pvmtobject = ^tvmtobject;
tvmtobject = object
constructor constructor_none;
destructor destructor_none;
procedure method_virtual_none; virtual;
procedure method_static_none; static;
procedure method_none;
procedure method_virtual_1; virtual;
end;
pheritedvmtobject = ^theritedvmtobject;
theritedvmtobject = object(tvmtobject)
constructor constructor_none;
destructor destructor_none;
end;
{ object without vmt }
pnovmtobject = ^tnovmtobject;
tnovmtobject = object
procedure method_none;
procedure method_static_none; static;
end;
tsampleclass = class
constructor create;
destructor destroy;
constructor create_second;
destructor destroy_second;
procedure method_none;
class procedure class_method_none;
class procedure class_method_none_1;
class constructor create_class;
class destructor destroy_class;
procedure method_virtual; virtual;
end;
theritedclass = class(tsampleclass)
constructor create;
destructor destroy;
procedure initialize; virtual;
procedure finalize; virtual;
end;
procedure tnovmtobject.method_none;
begin
end;
procedure tnovmtobject.method_static_none;
begin
end;
constructor tvmtobject.constructor_none;
begin
end;
procedure tvmtobject.method_virtual_none;
begin
end;
procedure tvmtobject.method_virtual_1;
begin
method_virtual_none;
end;
procedure tvmtobject.method_static_none;
begin
end;
procedure tvmtobject.method_none;
begin
end;
destructor tvmtobject.destructor_none;
begin
end;
constructor theritedvmtobject.constructor_none;
begin
inherited constructor_none;
end;
destructor theritedvmtobject.destructor_none;
begin
inherited destructor_none;
end;
{*******************************************************************************}
{ TSAMPLECLASS }
{*******************************************************************************}
constructor tsampleclass.create;
begin
end;
destructor tsampleclass.destroy;
begin
end;
constructor tsampleclass.create_second;
begin
end;
destructor tsampleclass.destroy_second;
begin
end;
procedure tsampleclass.method_none;
begin
end;
procedure tsampleclass.method_virtual;
begin
{ methodpointer = nil }
class_method_none;
end;
class procedure tsampleclass.class_method_none;
begin
end;
class procedure tsampleclass.class_method_none_1;
begin
{ methodpointer = nil }
class_method_none;
end;
class constructor tsampleclass.create_class;
begin
end;
class destructor tsampleclass.destroy_class;
begin
end;
{*******************************************************************************}
{ THERITEDCLASS }
{*******************************************************************************}
destructor theritedclass.destroy;
begin
{ generates typen in secondcalln }
inherited destroy;
end;
constructor theritedclass.create;
begin
{ generates typen in secondcalln }
inherited create;
end;
procedure theritedclass.initialize;
begin
{ methodpointer = nil }
create;
end;
procedure theritedclass.finalize;
begin
{ methodpointer = nil }
destroy;
end;
function getvmtobject : tvmtobject;
begin
end;
var
myvmtobject : tvmtobject;
var
sampleclass : tsampleclass;
begin
Write('typen call node...');
{****************************** STATIC CALLS ************************************}
{ tvmtobject.method_static_none;
tnovmtobject.method_static_none;}
{ methodpointer : LOC_REGISTER
missing methodpointer : LOC_REFERENCE
}
{sampleclass := tsampleclass.create;}
{!!! HOW TO DO A DIRECT CALL TO CLASS DESTRUCTOR/CONSTRUCTOR? }
tsampleclass.class_method_none;
sampleclass.class_method_none;
sampleclass.create_second;
sampleclass.destroy_second;
tsampleclass.destroy_class;
tsampleclass.create_class;
{ sampleclass.destroy;}
{****************************** CONSTRUCTORS/DESTRUCTORS ************************************}
{ OK - full test for instance method done.
methodpointer : LOC_REFERENCE}
myvmtobject.constructor_none;
myvmtobject.destructor_none;
myvmtobject.method_none;
{!!!!!!!!1missing : methodpointer : LOC_REGISTER
}
{****************************** VIRTUAL METHODS ************************************}
{ !!!!!!!HANDLE SEPARETELY SINCE ITS QUITE COMPLICATED!!!
myvmtobject.method_virtual_none;}
end.
{
$Log$
Revision 1.2 2002-04-10 19:23:31 carl
+ added direct destructor / constructor call
}