Hola Gente

Al  cerrar mi aplicación acurrió esto:


10:46:48, martes, 11 de mayo de 2010: Unhandled exception - a GPFault('Invalid 
access to memory location. Reading 0x6C, IP 0x27FB91A (C:\Documents and 
Settings\Gregoris.GREGORIS-3FDB03\Mis documentos\Dolphin Smalltalk 
X6\TerrainEditor\Library\TVb3D65.dll)')

ProcessorScheduler>>gpFault:
[] in ProcessorScheduler>>vmi:list:no:with:
BlockClosure>>ifCurtailed:
ProcessorScheduler>>vmi:list:no:with:
ITVEngine(ExternalStructure)>>invalidCall
ITVEngine(IUnknown)>>Release
ITVEngine(COMInterface)>>basicFree
ITVEngine(IDispatch)>>basicFree
ITVEngine(COMInterface)>>free
ITVEngine(Object)>>finalize
MemoryManager>>administerLastRites
MemoryManager>>finalizerMain
[] in MemoryManager>>forkFinalizer
ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry
[] in ExceptionHandler(ExceptionHandlerAbstract)>>try:
BlockClosure>>ifCurtailed:
BlockClosure>>ensure:
ExceptionHandler(ExceptionHandlerAbstract)>>try:
BlockClosure>>on:do:
[] in BlockClosure>>newProcess

A que se puede deber este error ?
TV3D es una interface COM, yo nunca hago un release de los componetes pues se 
supone que esto se hace solo cuando no hay referencias al componente.Por lo que 
dice la documentacion de dolphin.

Pero hay cosas que me confunde, como por ejemplo esto que dice la documentacion:

3.
If the object has a method for explicitly freeing its external resource(s) 
programmatically (which will be the case if you've followed the Object 
Liberation Strategy), then remove the finalization mark immediately after 
freeing the resource, by sending the #beUnfinalizable message. This reduces 
finalization 
overhead and allows objects to die sooner.

Lo que entiendo es que si hay algo que deba ser destruido a pata, hay que hacer 
lo que dice arriba.
El tema que Andy Bowen en su ejemplo con TV3D hace esto:

MainView>>onViewDestroyed
    Current == self 
        ifTrue: 
            [self engine free.
            Current := nil].
    super onViewDestroyed

Pero ITVEngine no tiene un destructor especial !.

Me aclaran como se tratan los COM y su release ?


saludos kiko






      

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]

http://www.clubSmalltalk.org

Responder a