diff --git a/implementations/C/joy b/implementations/C/joy index 424aade..a32fd77 100755 Binary files a/implementations/C/joy and b/implementations/C/joy differ diff --git a/implementations/C/joy.c b/implementations/C/joy.c index 25664fa..ba0cc30 100644 --- a/implementations/C/joy.c +++ b/implementations/C/joy.c @@ -33,6 +33,13 @@ void* reallocate_function (void *ptr, size_t old_size, size_t new_size) { void deallocate_function (void *ptr, size_t size) { GC_free(ptr); } + +void my_callback(GC_PTR void_obj, GC_PTR void_environment) { + //MY_ENVIRONMENT *env = (MY_ENVIRONMENT)void_environment; + mpz_t *obj = (mpz_t*)void_obj; + mpz_clear(*obj); +} + int main(void) { mp_set_memory_functions( @@ -40,7 +47,13 @@ int main(void) &reallocate_function, &deallocate_function ); + mpz_t pie; + //mpz_init_set_str (pie, "3141592653589793238462643383279502884", 10); + mpz_init_set_str (pie, "25d0c79fe247f31777d922627a74624", 16); + gmp_printf ("%Zd = %Zx\n", pie, pie); + GC_register_finalizer(pie, my_callback, NULL, NULL, NULL); return 0; + //return to_i(car(cons(from_i(0),from_i(1)))); }