From: Eric B. <er...@go...> - 2008-03-01 20:44:25
|
Colin Paul Adams wrote: >>>>>> "Eric" == Eric Bezault <er...@go...> writes: > > Eric> Colin Paul Adams wrote: > >>>>>>> "Eric" == Eric Bezault <er...@go...> writes: > >> > Eric> Colin Paul Adams wrote: >>>>>>>>> "Eric" == Eric Bezault <er...@go...> writes: > >> >> Eric> Damn it! At least I now know one thing: it is not > >> because of > Eric> mixing void* and function pointers. There is no such mixing > Eric> anymore. > >> >> Eric> So the problem is somewhere else. Can you compile with > >> this > Eric> new ge_gc.c file? > >> > >> It works, and prints: > >> > >> Current = 1CDB9E0 Class ID = 350 Dispose = 7BE320 > > Eric> And if you uncomment the line 24 in ge_gc.c it crashes, > Eric> right? > > Correct - after printing the same information. We are making some progress. I'm now more or less convinced that the problem is not in the way I invoke the Boehm's finalizer registration. Now I want to know which Eiffel `dispose' routine get called. Can you search for "T350" in file gestalt.h and tell me what is the corresponding Eiffel class? Also, in the last or next to last gestaltN.c file, there is the declaration of GE_types[]. Go to the line which starts with "{0, 350" and tell me what is the last entry of the corresponding record. Then, do a global search on all the gestaltN.c files to find the C function whose name was listed as last entry of the record above. Can you send me the C code corresponding to this routine? -- Eric Bezault mailto:er...@go... http://www.gobosoft.com |