[Gc] Determining if pointer GC allocated

Hans Aberg haberg-1 at telia.com
Fri Dec 30 13:55:41 PST 2011


On 30 Dec 2011, at 21:12, Ivan Maidanski wrote:

>>> I've implemented GC_is_heap_ptr (C, not C++) - see commit dcf6f52 (master branch).
>>> Does it work for you?
>> 
>> I made some simple timings. It is significantly faster than using GC_base(), and overhead is less than 70% relative a function f() that just returns an integer. It means that, unless one can optimize away the function call, there is little point in caching the value.
> 
> If your test case were written in C then it would be possible to define GC_API=static and include extra/gc.c directly from your code thus resulting everything to be compiled as a single module with GC_is_heap_ptr inlined (at some level of -O).

It might be possible from C++ using:
extern "C" {
#define GC_API static
#include "extra/gc.c"
}
but I get the error:
In file included from ./extra/gc.c:38:
./extra/../backgraph.c:15:10: fatal error: 'private/dbg_mlc.h' file not found
#include "private/dbg_mlc.h"
         ^
1 error generated.

Hans






More information about the Gc mailing list