X-Git-Url: http://git.indexdata.com/?p=simpleserver-moved-to-github.git;a=blobdiff_plain;f=SimpleServer.xs;h=77c3fc667fe30caa00c3c55b4f0ae2cf02438f27;hp=bb1238eb37e250db6dd04955f3ddb8d9d858d522;hb=f5104d99254281ab1a4dc221fe45e805cdee306d;hpb=382b672ba466b8a986b8ffe4d9984df610763035 diff --git a/SimpleServer.xs b/SimpleServer.xs index bb1238e..77c3fc6 100644 --- a/SimpleServer.xs +++ b/SimpleServer.xs @@ -25,7 +25,10 @@ */ /*$Log: SimpleServer.xs,v $ -/*Revision 1.11 2001-08-30 13:15:11 sondberg +/*Revision 1.12 2001-08-30 14:02:10 sondberg +/*Small changes. +/* +/*Revision 1.11 2001/08/30 13:15:11 sondberg /*Corrected a memory leak, one more to go. /* /*Revision 1.10 2001/08/29 11:48:36 sondberg @@ -810,6 +813,7 @@ int bend_scan(void *handle, bend_scan_rr *rr) STRLEN len; int term_len; SV *term_tmp; + SV *entries_ref; Zfront_handle *zhandle = (Zfront_handle *)handle; @@ -868,7 +872,7 @@ int bend_scan(void *handle, bend_scan_rr *rr) number = newSVsv(*temp); temp = hv_fetch(href, "ENTRIES", 7, 1); - entries = (AV *)SvRV(newSVsv(*temp)); + entries_ref = newSVsv(*temp); PUTBACK; FREETMPS; @@ -883,6 +887,7 @@ int bend_scan(void *handle, bend_scan_rr *rr) rr->status = SvIV(status); scan_list = (struct scan_entry *) odr_malloc (rr->stream, rr->num_entries * sizeof(*scan_list)); buffer = scan_list; + entries = (AV *)SvRV(entries_ref); for (i = 0; i < rr->num_entries; i++) { scan_item = (HV *)SvRV(sv_2mortal(av_shift(entries))); @@ -894,7 +899,6 @@ int bend_scan(void *handle, bend_scan_rr *rr) buffer->occurrences = SvIV(*temp); buffer++; hv_undef(scan_item); - /*sv_free((SV *)scan_item);*/ } rr->entries = scan_list; zhandle->handle = point; @@ -910,7 +914,8 @@ int bend_scan(void *handle, bend_scan_rr *rr) av_undef(list); sv_free((SV *)list); av_undef(entries); - sv_free((SV *)entries); + /*sv_free((SV *)entries);*/ + sv_free(entries_ref); return 0; }