From: Eric W. <ewm...@gm...> - 2013-06-29 07:08:52
|
I think I found a memory leak when binding/using C struct APIs with the JavaScriptCore implementation. This is the sample code I've been testing. // MyPoint.h/.i struct MyPoint { double x; double y; }; struct MyPoint MyPointMake(double the_x, double the_y); struct MyPoint AddPoints(struct MyStruct struct1, struct MyStruct struct2); // MyPoint.c struct MyPoint MyPointMake(double the_x, double the_y) { struct MyPoint ret_struct = { the_x, the_y }; return ret_struct; } struct MyPoint AddPoints(struct MyPoint struct1, struct MyPoint struct2) { struct MyPoint ret_struct; ret_struct.x = struct1.x + struct2.x; ret_struct.y = struct1.y + struct2.y; return ret_struct; } // Javascript var struct1 = example.MyPointMake(1, 2); var struct2 = example.MyPointMake(0, 0); struct2.x = 10; struct2.y = 200; var ret_struct = example.AddPoints(struct1, struct2); var ret_x = ret_struct.x; var ret_y = ret_struct.y; Using breakpoints, printf, and Xcode/Instrument's memory leak detector, I'm pretty sure the implementation is leaking structs it must internally create on the heap (since it can't pass a stack object to Javascript). I'm still a noob with JSCore and SWIG, but I finally have some time to dive into the implementation. Can anybody give me some tips on what I'm looking for to fix this or examples to look at? Thanks, Eric -- Beginning iPhone Games Development http://playcontrol.net/iphonegamebook/ |