Forked from
cmucl / cmucl
Source project has a limited visibility.
-
dtc authored
this info may be shared among many alien objects making cancellation of the finalisation upon alien object deallocation problematic. Probably for this reason this cancellation had been disabled, however this often resulted in objects being freed twice and possibly live objects being freed. To fix this, the finalizer is now placed on the alien object rather than the alien info, and this finalizer is cancelled before the deallocation of the alien object to prevent repeated freeing. Problem tracked down thanks to a bug report and some experimentation by Andrei V. Elkin.
dtc authoredthis info may be shared among many alien objects making cancellation of the finalisation upon alien object deallocation problematic. Probably for this reason this cancellation had been disabled, however this often resulted in objects being freed twice and possibly live objects being freed. To fix this, the finalizer is now placed on the alien object rather than the alien info, and this finalizer is cancelled before the deallocation of the alien object to prevent repeated freeing. Problem tracked down thanks to a bug report and some experimentation by Andrei V. Elkin.