… | |
… | |
326 | { |
326 | { |
327 | SvREFCNT_dec (cb); |
327 | SvREFCNT_dec (cb); |
328 | cb = 0; |
328 | cb = 0; |
329 | } |
329 | } |
330 | |
330 | |
331 | if (attach) |
|
|
332 | { |
|
|
333 | free_string (attach); |
|
|
334 | attach = 0; |
331 | attach = 0; |
335 | } |
|
|
336 | } |
332 | } |
337 | |
333 | |
338 | void attachable_base::optimise () |
334 | void attachable_base::optimise () |
339 | { |
335 | { |
340 | if (!self) |
336 | if (!self) |
… | |
… | |
359 | PUSHMARK (SP); |
355 | PUSHMARK (SP); |
360 | EXTEND (SP, 2); |
356 | EXTEND (SP, 2); |
361 | PUSHs (sv_2mortal (newSVdt (type, obj))); |
357 | PUSHs (sv_2mortal (newSVdt (type, obj))); |
362 | PUSHs (sv_2mortal (newSVpv (attach, 0))); |
358 | PUSHs (sv_2mortal (newSVpv (attach, 0))); |
363 | |
359 | |
364 | free_string (attach); |
|
|
365 | attach = 0; |
360 | attach = 0; |
366 | |
361 | |
367 | PUTBACK; |
362 | PUTBACK; |
368 | call_pv ("cf::instantiate", G_DISCARD | G_VOID | G_EVAL); |
363 | call_pv ("cf::instantiate", G_DISCARD | G_VOID | G_EVAL); |
369 | FREETMPS; |
364 | FREETMPS; |