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.