Jump to content

UnigineInterpreter::GetExternClass NULL pointer extern_class


photo

Recommended Posts

Windows 32bit Visual C++ 1600 Release Feb 22 2012

System: Windows 7 (build 7600) 64bit

CPU: Intel® Core™ i7 CPU 960 @ 3.20GHz 3197MHz MMX SSE SSE2 SSE3 SSSE3 SSE41 SSE42 HTT x8

GPU: NVIDIA GeForce GTX 560 Ti 8.17.12.7533 x1

System memory: 4095 Mb

Video memory: 1024 Mb

 

I've moved from an old Unigne version (2011-09-13) to last (2012-02-26) Application crashes at startup when It tries to register its extern classes.

Looking at UnigineInterpreter.cpp file the old version was:

ExternClassBase *GetExternClass(::ExternClassBase *extern_class) {
 if(extern_class) return static_cast<ExternClassExport*>(extern_class)->getExternClass();
 return NULL;
}

Now it's:

ExternClassBase *GetExternClass(::ExternClassBase *extern_class) {
 if(extern_class) {
  ExternClassBase *ret = static_cast<ExternClassExport*>(extern_class)->getExternClass();
  delete extern_class;
  return ret;
 }
 return NULL;
}

The crash happens second time I ask for a base class to extend from it calling:

ExternClass<IAvatarEntity> *iavatarentityclass= static_cast<ExternClass<IAvatarEntity>*>(Interpreter::getExternClass("IAvatarEntity"));

In first call, extern_class points to a valid memory direction, but at second call extern_class is NULL.

 

Iván.

Link to comment
×
×
  • Create New...