The computation of offsets in CheckMscorlib does not seem to be
accurate. Try changing:

<        if (!pFD->GetMethodTableOfEnclosingClass()->IsValueClass())
<            offset += sizeof(ObjHeader);

to:
>        if (!pFD->GetMethodTableOfEnclosingClass()->IsValueClass())
>            offset += Object::GetOffsetOfFirstField();

Have you considered using syncblock for the extra stuff you need? It
should be much easier.

-Jan

This posting is provided "AS IS" with no warranties, and confers no
rights.

-----Original Message-----
From: Discussion of the Rotor Shared Source CLI implementation
[mailto:[EMAIL PROTECTED] On Behalf Of Archana
Sent: Friday, July 25, 2003 8:24 AM
To: [EMAIL PROTECTED]
Subject: [DOTNET-ROTOR] size of the object header

Hi,
 i hope you will excuse me for sending somany mails just over the past
few
days. once i get the hang of it, should be okay
my changes to the collector requires the object header size to be 8
instead of 4 which is the current obj header size. one potential place
where i need to make changes was indicated by an Assert failure at
binder.cpp::CheckMscorlib() where pOffsets->expectedOffset is compared
with offset. how should i go about making the change to avoid assert
failure. i tried looking for MscorlibFieldOffsets but not able to
understand how its getting populated. Also if i need to make changes in
other critical places it would of immense help if you could mention them

thanks & regards
archana

Reply via email to