/* Copy PHP interned strings from PHP process memory into the shared memory */
static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_interned_string)
{
- uint32_t idx, j;
+ uint32_t j;
Bucket *p, *q;
/* empty string */
}
/* function table hash keys */
- for (idx = 0; idx < CG(function_table)->nNumUsed; idx++) {
- p = CG(function_table)->arData + idx;
+ ZEND_HASH_FOREACH_BUCKET(CG(function_table), p) {
if (Z_TYPE(p->val) == IS_UNDEF) continue;
if (p->key) {
p->key = new_interned_string(p->key);
}
}
}
- }
+ } ZEND_HASH_FOREACH_END();
/* class table hash keys, class names, properties, methods, constants, etc */
- for (idx = 0; idx < CG(class_table)->nNumUsed; idx++) {
+ ZEND_HASH_FOREACH_BUCKET(CG(class_table), p) {
zend_class_entry *ce;
- p = CG(class_table)->arData + idx;
if (Z_TYPE(p->val) == IS_UNDEF) continue;
ce = (zend_class_entry*)Z_PTR(p->val);
ce->name = new_interned_string(ce->name);
}
- for (j = 0; j < ce->properties_info.nNumUsed; j++) {
+ ZEND_HASH_FOREACH_BUCKET(&ce->properties_info, q) {
zend_property_info *info;
- q = ce->properties_info.arData + j;
if (Z_TYPE(q->val) == IS_UNDEF) continue;
info = (zend_property_info*)Z_PTR(q->val);
if (info->name) {
info->name = new_interned_string(info->name);
}
- }
+ } ZEND_HASH_FOREACH_END();
- for (j = 0; j < ce->function_table.nNumUsed; j++) {
- q = ce->function_table.arData + j;
+ ZEND_HASH_FOREACH_BUCKET(&ce->function_table, q) {
if (Z_TYPE(q->val) == IS_UNDEF) continue;
if (q->key) {
q->key = new_interned_string(q->key);
if (Z_FUNC(q->val)->common.function_name) {
Z_FUNC(q->val)->common.function_name = new_interned_string(Z_FUNC(q->val)->common.function_name);
}
- }
+ } ZEND_HASH_FOREACH_END();
- for (j = 0; j < ce->constants_table.nNumUsed; j++) {
- q = ce->constants_table.arData + j;
+ ZEND_HASH_FOREACH_BUCKET(&ce->constants_table, q) {
if (Z_TYPE(q->val) == IS_UNDEF) continue;
if (q->key) {
q->key = new_interned_string(q->key);
}
- }
- }
+ } ZEND_HASH_FOREACH_END();
+ } ZEND_HASH_FOREACH_END();
/* constant hash keys */
- for (idx = 0; idx < EG(zend_constants)->nNumUsed; idx++) {
+ ZEND_HASH_FOREACH_BUCKET(EG(zend_constants), p) {
zend_constant *c;
- p = EG(zend_constants)->arData + idx;
if (Z_TYPE(p->val) == IS_UNDEF) continue;
if (p->key) {
p->key = new_interned_string(p->key);
if (c->name) {
c->name = new_interned_string(c->name);
}
- }
+ } ZEND_HASH_FOREACH_END();
/* auto globals hash keys and names */
- for (idx = 0; idx < CG(auto_globals)->nNumUsed; idx++) {
+ ZEND_HASH_FOREACH_BUCKET(CG(auto_globals), p) {
zend_auto_global *auto_global;
- p = CG(auto_globals)->arData + idx;
if (Z_TYPE(p->val) == IS_UNDEF) continue;
auto_global = (zend_auto_global*)Z_PTR(p->val);;
if (p->key) {
p->key = new_interned_string(p->key);
}
- }
-
- for (idx = 0; idx < module_registry.nNumUsed; idx++) {
- p = module_registry.arData + idx;
+ } ZEND_HASH_FOREACH_END();
+ ZEND_HASH_FOREACH_BUCKET(&module_registry, p) {
if (p->key) {
p->key = new_interned_string(p->key);
}
- }
+ } ZEND_HASH_FOREACH_END();
}
static zend_string *accel_replace_string_by_shm_permanent(zend_string *str)