/** * The purpose of this test is to confirm that a language module * correctly handles the case when a C function has been tagged with the * %newobject directive. */ %module newobject2 %{ #include <stdlib.h> %} %{ /* Global initialization (not wrapped) */ int g_fooCount = 0; %} %newobject makeFoo(); %inline %{ /* Struct definition */ typedef struct { int dummy; } Foo; /* Make one */ Foo *makeFoo() { Foo *foo = (Foo *) malloc(sizeof(Foo)); g_fooCount++; return foo; } /* Return the number of instances */ int fooCount() { return g_fooCount; } void do_stuff(Foo *f) { } %} %extend Foo { ~Foo() { free((void *) $self); g_fooCount--; } }
Generated by dwww version 1.15 on Tue Jul 2 00:11:18 CEST 2024.