following tye's comments it's works ok, but bulk88's can't work. I don't know why. follow is my corrected code:
#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "const-c.inc" #include "top_insert.h" MODULE = top_insert PACKAGE = top_insert INCLUDE: const-xs.inc void top_insert(up_v, up_num, down_v, down_num, init_step_ratio, ratio) char * up_v int up_num char * down_v int down_num double init_step_ratio double ratio INIT: int sample_num; int n; double *return_val = NULL; PPCODE: return_val = get_inter_line(up_num, (double *)up_v, down_num, +(double *)down_v, init_step_ratio, ratio, &sample_num); sample_num = sample_num*3; for (n=0; n<sample_num; n++){ XPUSHs(sv_2mortal(newSVnv(*(return_val + n)))); } del_inter_line(return_val);
Thanks both of you very much.
BTY, I use those pretty complex. c++ code buld to static lib for quickly algorithm. xs code link to perl mod. use perlctrl pack pm to Win32::OLE dll. use autoCad autoLisp to call OLE. so difficult to debug.
In reply to Re^2: xs memoryleak (xs--)
by yarp
in thread xs memoryleak
by yarp
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |