My wild guess would be that you are not erecting helper frame somewhere
(HELPER_METHOD_FRAME_BEGIN/ HELPER_METHOD_FRAME_END family of macros),
but it is hard to be sure without having more info.

If this hint does not help you, can you post the callstack of the
assert? There should be some functions on the callstack that you have
written or modified, can you please post the code fragments for these
modifications as well?

-Jan

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

-----Original Message-----
From: Ivan Suarez [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, December 03, 2002 4:37 AM
To: [EMAIL PROTECTED]
Subject: [DOTNET-ROTOR] Adding a System Class to Rotor

I need write a class inherited from Object (as StringObject does), and I
need create instances of it when objects are created (in NewObject
helpers). I think that I followed all the steps:

   1.- I created a C# class in bcl/system/security directory (I want my
class be in that package).

   2.- I wrote the class that I want use in the Rotor. The fields of the
class match exactly with the fields in the C# class.

   3.- I modified the mscorlib.h file, to include my new class. And to
map
the two classes previously writeen. I also add the constructor
reference.

   4.- I created a global pointer to the method table of my class. I
initialized this with the FetchClass method in the class BinderClass.

   5.- I call CDI_GLOBAL_ADDRESS_DEBUG_ONLY in file Dump-types.h, to
specifie that the method table is a global variable.

The problem is that when I try to create an instance of this class I get
an assert in line 5144, in the file gcsmp.cpp. The text of the assert
is: "!curThread->GCForbidden()".

I don't know where is the problem, though I think that I missed some
step
to incorporate the new class. The function in wich the assert is
launched
is Alloc.

I tried yet with the AllocateObject(MethodTable*) function and with
AllocateObject(DWORD), and in both funcionts I have de same error.

Could anybody help me to resolve my problem.

Thank you.

Reply via email to