#define SET_INCONSISTENT(n)
#endif
+#define HASH_APPLY_BEGIN(ht) \
+ if ((ht)->nApplyCount>=3) { \
+ zend_error(E_WARNING, "Nesting level too deep - recursive dependency?"); \
+ return; \
+ } \
+ (ht)->nApplyCount++;
+
+#define HASH_APPLY_END(ht) \
+ (ht)->nApplyCount--;
+
+
/* Generated on an Octa-ALPHA 300MHz CPU & 2.5GB RAM monster */
static uint PrimeNumbers[] =
{5, 11, 19, 53, 107, 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793, 2097397, 4194103, 8388857, 16777447, 33554201, 67108961, 134217487, 268435697, 536870683, 1073741621, 2147483399};
ht->nNextFreeElement = 0;
ht->pInternalPointer = NULL;
ht->persistent = persistent;
+ ht->nApplyCount = 0;
return SUCCESS;
}
IS_CONSISTENT(ht);
+ HASH_APPLY_BEGIN(ht);
p = ht->pListHead;
while (p != NULL) {
if (apply_func(p->pData)) {
p = p->pListNext;
}
}
+ HASH_APPLY_END(ht);
}
IS_CONSISTENT(ht);
+ HASH_APPLY_BEGIN(ht);
p = ht->pListHead;
while (p != NULL) {
if (apply_func(p->pData, argument)) {
p = p->pListNext;
}
}
+ HASH_APPLY_END(ht);
}
IS_CONSISTENT(ht);
- va_start(args, num_args);
+ HASH_APPLY_BEGIN(ht);
+ va_start(args, num_args);
p = ht->pListHead;
while (p != NULL) {
hash_key.arKey = p->arKey;
p = p->pListNext;
}
}
-
va_end(args);
+
+ HASH_APPLY_END(ht);
}