mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
move to hash API
This commit is contained in:
parent
361b7159e7
commit
2cfd64cad8
1 changed files with 17 additions and 26 deletions
|
@ -494,7 +494,7 @@ zend_string *accel_new_interned_string(zend_string *str)
|
|||
/* 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 */
|
||||
|
@ -510,8 +510,7 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int
|
|||
}
|
||||
|
||||
/* 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);
|
||||
|
@ -535,13 +534,12 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} 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);
|
||||
|
||||
|
@ -553,10 +551,9 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int
|
|||
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);
|
||||
|
@ -568,10 +565,9 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int
|
|||
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);
|
||||
|
@ -579,22 +575,20 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int
|
|||
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);
|
||||
|
@ -603,13 +597,12 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int
|
|||
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);;
|
||||
|
@ -619,15 +612,13 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int
|
|||
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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue