]> git.vpit.fr Git - perl/modules/Lexical-Types.git/blobdiff - Types.xs
Update XS helpers to ae9dac2a
[perl/modules/Lexical-Types.git] / Types.xs
index d655c855e7b16a4e9031eec842547c1d7ff1e3b1..7de168535aa48a10e28178e6dc5c869309203259 100644 (file)
--- 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(&lt_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(&lt_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);
  }