]> git.vpit.fr Git - perl/modules/indirect.git/blobdiff - ptable.h
Prevent bogus invalid syntaxes caused by reallocated memory chunks
[perl/modules/indirect.git] / ptable.h
index 72be11d4b8ea72c85c1e30d01bccd2f83259acf8..ba275bac8c717523f844034a31336d817820aaaa 100644 (file)
--- a/ptable.h
+++ b/ptable.h
@@ -80,7 +80,7 @@ typedef struct ptable {
 STATIC ptable *ptable_new(pPTBLMS) {
 #define ptable_new() ptable_new(aPTBLMS)
  ptable *t = PerlMemShared_malloc(sizeof *t);
- t->max   = 127;
+ t->max   = 15;
  t->items = 0;
  t->ary   = PerlMemShared_calloc(t->max + 1, sizeof *t->ary);
  return t;
@@ -117,6 +117,16 @@ STATIC void *ptable_fetch(const ptable * const t, const void * const key) {
 }
 #endif /* !ptable_fetch */
 
+STATIC void PTABLE_PREFIX(_delete)(pPTBL_ const ptable * const t, const void * const key) {
+ ptable_ent *const ent = ptable_find(t, key);
+
+ if (ent) {
+  void *val = ent->val;
+  PTABLE_VAL_FREE(val);
+  ent->val = NULL;
+ }
+}
+
 #ifndef ptable_split
 STATIC void ptable_split(pPTBLMS_ ptable * const t) {
 #define ptable_split(T) ptable_split(aPTBLMS_ (T))