On 08/06/12 23:02, Paul Ishenin wrote:

> 
> Class variable is stored the same way as a regular variable and has the
> only difference is that it can be accessible with the class name prefix.
> The thing you need requires different implementation - something like
> storing a virtual class variable in VMT. There is no implementation for
> that.
> 
> Best regards,
> Paul Ishenin

What is the current implementation?

I would guess that class vars are stored in the vmt already...

Please correct me if I've got this wrong.

Current classes have a structure containing partially the following:

TClassInstance = record
vmt: Pointer;
{Space for parent class variables are stored here followed by variables
declared for this object}
variable1: SomeType;
variable2: SomeType;
etc.
end;


TClassVMT = record
  parent_class_vmt: Pointer;
  virtual_procs: array[0..n] of pointer;
  class_var_1: Sometype;
  class_var_2: Sometype;
  etc...
end;

Is this right?

Thanks,

Andrew
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to