Am 16.08.2013 09:54, schrieb Mikael:
Remember that for c-define-type :s that do not have a release procedure specified, there is *no* deallocation (such as free() etc.) invoked at their scheme-world GC.
I've read in the documentation for the default release function (pointer ..) and (nonnull-pointer ...) types are not performing any deallocation like you mentioned.
I'm a little bit curious about (struct ..) type-definitions because due to the documentation it has probably a more useful default behaviour for releasing.
Can i assume if i allocate and use a (struct ...) type that the GC management system will handle this reference properly? (in contrast to pointers)
This would save me a lot of specific cleanup code for all predefined types if gambit's system is performing delete calls automatically for structs.
e.g.
(c-define-type std::string (struct "std::string")) (define string-new (c-lambda (nonnull-char-string) std::string "___result_voidstar = new std::string(___arg1);"))
Only for clarification for myself i don't create memory leaks.
Thanks, Chris