Changeset 619 for branches/1.3
- Timestamp:
- 07/05/2009 10:01:36 AM (4 years ago)
- Location:
- branches/1.3
- Files:
-
- 5 modified
-
. (modified) (1 prop)
-
processor/processor.m4 (modified) (2 diffs)
-
xcache.c (modified) (3 diffs)
-
xcache.h (modified) (1 diff)
-
xcache_globals.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/1.3
-
branches/1.3/processor/processor.m4
r618 r619 504 504 dnl readonly_protection=on 505 505 dnl main op_array && have early binding 506 zend_uint ii; 506 507 if (!processor->readonly_protection && !(src == processor->xce_src->data.php->op_array && processor->xce_src->data.php->have_early_binding)) { 507 508 /* really fast shallow copy */ … … 510 511 /* deep */ 511 512 STRUCT_P(HashTable, static_variables, HashTable_zval_ptr) 513 STRUCT_ARRAY_I(num_args, zend_arg_info, arg_info) 514 xc_gc_add_op_array(dst TSRMLS_CC); 512 515 define(`SKIPASSERT_ONCE') 513 516 } -
branches/1.3/xcache.c
r617 r619 1266 1266 /* }}} */ 1267 1267 1268 /* {{{ xc_gc_op_array_t */ 1269 typedef struct { 1270 zend_uint num_args; 1271 zend_arg_info *arg_info; 1272 } xc_gc_op_array_t; 1273 /* }}} */ 1274 void xc_gc_add_op_array(zend_op_array *op_array TSRMLS_DC) /* {{{ */ 1275 { 1276 xc_gc_op_array_t gc_op_array; 1277 gc_op_array.num_args = op_array->num_args; 1278 gc_op_array.arg_info = op_array->arg_info; 1279 zend_hash_next_index_insert(&XG(gc_op_arrays), (void *) &gc_op_array, sizeof(gc_op_array), NULL); 1280 } 1281 /* }}} */ 1282 static void xc_gc_op_array(void *pDest) /* {{{ */ 1283 { 1284 xc_gc_op_array_t *op_array = (xc_gc_op_array_t *) pDest; 1285 zend_uint i; 1286 if (op_array->arg_info) { 1287 for (i = 0; i < op_array->num_args; i++) { 1288 efree((char*)op_array->arg_info[i].name); 1289 if (op_array->arg_info[i].class_name) { 1290 efree((char*)op_array->arg_info[i].class_name); 1291 } 1292 } 1293 efree(op_array->arg_info); 1294 } 1295 } 1296 /* }}} */ 1297 1268 1298 /* module helper function */ 1269 1299 static int xc_init_constant(int module_number TSRMLS_DC) /* {{{ */ … … 1495 1525 } 1496 1526 1527 zend_hash_init(&XG(gc_op_arrays), 32, NULL, xc_gc_op_array, 0); 1528 1497 1529 #if PHP_API_VERSION <= 20041225 1498 1530 XG(request_time) = time(NULL); … … 1509 1541 { 1510 1542 xc_entry_unholds(TSRMLS_C); 1543 zend_hash_destroy(&XG(gc_op_arrays)); 1511 1544 xc_gc_expires_php(TSRMLS_C); 1512 1545 xc_gc_expires_var(TSRMLS_C); -
branches/1.3/xcache.h
r618 r619 331 331 int xc_is_ro(const void *p); 332 332 int xc_is_shm(const void *p); 333 void xc_gc_add_op_array(zend_op_array *op_array TSRMLS_DC); 333 334 334 335 #endif /* __XCACHE_H */ -
branches/1.3/xcache_globals.h
r437 r619 18 18 zend_bool auth_enabled; 19 19 20 HashTable gc_op_arrays; 21 20 22 HashTable internal_function_table; 21 23 HashTable internal_class_table;

