Daniel Holden
Daniel Holden
Hi, What is the line `(void(*)(void*))**(void***)this` meant to be doing? It looks like you are casting `this` to a function pointer and then passing it to `tgc` to be the...
Nice - never knew about that hack. One other thing to be careful about is that tgc does not order destructors. E.G when an object goes out of scope so...
Thanks for the PR. Although this does technically allow usage with C++ the GC doesn't really play nicely with how C++ does allocation including `new` and `delete` so I would...
If the number of frees was zero it means it probably didn't mark anything during the marking phase. Perhaps for some reason it is not finding any pointers on the...
To me it looks like maybe you need to call `tgc_start(&mrb->gc, &stack);` and `tgc_stop(&mrb->gc);` in the `main` function otherwise it might not be starting marking the stack from deep enough.
You can try this tip: https://github.com/orangeduck/tgc#tgc-isnt-working-when-optimisations-are-enabled
Yes you can use a local variable as the starting address instead: ```c int main(void) { int dummy; tgc_start(&gc, &dummy); example_function(); tgc_stop(&gc); } ```
Right now the GC only reads data on the stack so it shouldn't be able to corrupt anything. The only caveat is that sometimes the stack can contain uninitialized values...
I don't believe so. Basically all this wrapper can do is just set the settings for a call to "Generate Maps"
What might make more sense is to actually update (or submodule) the included version of Python