X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FLexical-Types.git;a=blobdiff_plain;f=Types.xs;fp=Types.xs;h=7de168535aa48a10e28178e6dc5c869309203259;hp=d655c855e7b16a4e9031eec842547c1d7ff1e3b1;hb=0d7058280090c294f5fe0eb9ac5251816dd31d30;hpb=403b8b4a1f84772b9f78b25ada4c4e5889a47334 diff --git a/Types.xs b/Types.xs index d655c85..7de1685 100644 --- a/Types.xs +++ b/Types.xs @@ -12,6 +12,7 @@ #include "xsh/caps.h" #include "xsh/util.h" +#include "xsh/mem.h" #include "xsh/ops.h" #include "xsh/peep.h" @@ -47,7 +48,7 @@ static void xsh_user_clone(pTHX_ const xsh_user_cxt_t *old_cxt, xsh_user_cxt_t * /* ... op => info map ...................................................... */ #define PTABLE_NAME ptable_map -#define PTABLE_VAL_FREE(V) PerlMemShared_free(V) +#define PTABLE_VAL_FREE(V) XSH_SHARED_FREE((V), 0, char) #define PTABLE_VAL_NEED_CONTEXT 0 #define PTABLE_NEED_DELETE 1 #define PTABLE_NEED_WALK 0 @@ -140,7 +141,7 @@ static void lt_padxv_map_store(pTHX_ const OP *o, SV *orig_pkg, SV *type_pkg, SV XSH_LOCK(<_op_map_mutex); if (!(oi = ptable_fetch(lt_op_padxv_map, o))) { - oi = PerlMemShared_malloc(sizeof *oi); + XSH_SHARED_ALLOC(oi, 1, lt_op_padxv_info); ptable_map_store(lt_op_padxv_map, o, oi); #ifdef MULTIPLICITY oi->buf = NULL; @@ -161,8 +162,7 @@ static void lt_padxv_map_store(pTHX_ const OP *o, SV *orig_pkg, SV *type_pkg, SV STRLEN new_buf_size = op_len + tp_len + tm_len; char *buf; if (new_buf_size > oi->buf_size) { - PerlMemShared_free(oi->buf); - oi->buf = PerlMemShared_malloc(new_buf_size); + XSH_SHARED_REALLOC(oi->buf, oi->buf_size, new_buf_size, char); oi->buf_size = new_buf_size; } buf = oi->buf; @@ -221,7 +221,7 @@ static void lt_padrange_map_store(pTHX_ const OP *o, const OP *s, OP *(*old_pp)( XSH_LOCK(<_op_map_mutex); if (!(oi = ptable_fetch(lt_op_padrange_map, o))) { - oi = PerlMemShared_malloc(sizeof *oi); + XSH_SHARED_ALLOC(oi, 1, lt_op_padrange_info); ptable_map_store(lt_op_padrange_map, o, oi); }