Problem with Free() method

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 19/07/2010 at 02:29, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   11.5 
Platform:   Windows  ;   
Language(s) :     C++  ;

---------
Hi all!

As my plugin is a bit slow, I would like to free some objects I use in my timers :

BaseDraw* baseDraw = doc->GetActiveBaseDraw();
BaseObject* baseCamera = baseDraw->GetSceneCamera(doc);

In order to do that I've changed the initialization of these objects :

BaseDraw* baseDraw = BaseDraw::Alloc();
BaseObject* baseCamera = BaseObject::Alloc(Ocamera);

And then :

BaseDraw::Free(baseDraw);
BaseObject::Free(baseCamera);

There is no error when the code is compiled but when I launch C4D I got this error :

Unhandled exception at 0x00000000 in CINEMA 4D Demo.exe: 0xC0000005: Access violation reading location 0x00000000.

In Visual Studio it shows me the c4d_baseobject.cpp file and particularly the BaseObject::Free method :

void BaseObject::Free(BaseObject *&bl)
{
	 **C4DOS.Bl- >Free(bl);**
	bl=NULL;
}

Why is the Free method not working ?
Thanks.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 19/07/2010 at 09:05, xxxxxxxx wrote:

I solved my problem I just used the wrong refresh method for my scene! Now I use DrawViews(DA_NO_THREAD|DA_ONLY_ACTIVE_VIEW|DA_ONLY_HIGHLIGHT); and it's fine 😉