Changeset 311 for trunk/processor/head.m4
- Timestamp:
- 12/09/2006 05:27:03 PM (6 years ago)
- Files:
-
- 1 modified
-
trunk/processor/head.m4 (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/processor/head.m4
r300 r311 65 65 zend_bool reference; /* enable if to deal with reference */ 66 66 zend_bool have_references; 67 const xc_entry_t *xce_src; 68 const xc_entry_t *xce_dst; 67 const xc_entry_data_php_t *php_src; 68 const xc_entry_data_php_t *php_dst; 69 const xc_cache_t *cache; 69 70 const zend_class_entry *cache_ce; 70 71 zend_uint cache_class_num; … … 186 187 static zend_ulong xc_get_class_num(xc_processor_t *processor, zend_class_entry *ce) { 187 188 zend_ulong i; 188 const xc_entry_ t *xce = processor->xce_src;189 const xc_entry_data_php_t *php = processor->php_src; 189 190 zend_class_entry *ceptr; 190 191 … … 192 193 return processor->cache_class_num; 193 194 } 194 for (i = 0; i < xce->data.php->classinfo_cnt; i ++) {195 ceptr = CestToCePtr( xce->data.php->classinfos[i].cest);195 for (i = 0; i < php->classinfo_cnt; i ++) { 196 ceptr = CestToCePtr(php->classinfos[i].cest); 196 197 if (ZCEP_REFCOUNT_PTR(ceptr) == ZCEP_REFCOUNT_PTR(ce)) { 197 198 processor->cache_ce = ceptr; … … 209 210 /* must be parent or currrent class */ 210 211 assert(class_num <= processor->active_class_num); 211 return CestToCePtr(processor-> xce_dst->data.php->classinfos[class_num - 1].cest);212 return CestToCePtr(processor->php_dst->classinfos[class_num - 1].cest); 212 213 } 213 214 #endif … … 275 276 /* }}} */ 276 277 dnl ================ export API 277 /* export: xc_entry_t *xc_processor_store_xc_entry_t(xc_entry_t *src TSRMLS_DC); :export {{{ */ 278 xc_entry_t *xc_processor_store_xc_entry_t(xc_entry_t *src TSRMLS_DC) { 279 xc_entry_t *dst; 278 define(`DEFINE_STORE_API', ` 279 /* export: $1 *xc_processor_store_$1($1 *src TSRMLS_DC); :export {{{ */ 280 $1 *xc_processor_store_$1($1 *src TSRMLS_DC) { 281 $1 *dst; 280 282 xc_processor_t processor; 281 283 282 284 memset(&processor, 0, sizeof(processor)); 283 285 processor.reference = 1; 286 processor.cache = src->cache; 284 287 285 288 IFASSERT(`xc_stack_init(&processor.allocsizes);') … … 295 298 processor.size = ALIGN(processor.size + sizeof(src[0])); 296 299 297 xc_calc_ xc_entry_t(&processor, src TSRMLS_CC);300 xc_calc_$1(&processor, src TSRMLS_CC); 298 301 if (processor.reference) { 299 302 zend_hash_destroy(&processor.zvalptrs); … … 302 305 } 303 306 src->size = processor.size; 304 src->have_references = processor.have_references; 307 ifelse(`$1', `xc_entry_t', ` 308 src->data.var->have_references = processor.have_references; 309 ', ` 310 src->have_references = processor.have_references; 311 ') 305 312 306 313 IFASSERT(`xc_stack_reverse(&processor.allocsizes);') … … 314 321 315 322 /* mem :) */ 316 processor.p = (char *) src->cache->mem->handlers->malloc(src->cache->mem, processor.size);323 processor.p = (char *) processor.cache->mem->handlers->malloc(processor.cache->mem, processor.size); 317 324 if (processor.p == NULL) { 318 325 dst = NULL; … … 323 330 324 331 /* allocate */ 325 dst = ( xc_entry_t*) processor.p;332 dst = ($1 *) processor.p; 326 333 processor.p = (char *) ALIGN(processor.p + sizeof(dst[0])); 327 334 328 xc_store_ xc_entry_t(&processor, dst, src TSRMLS_CC);335 xc_store_$1(&processor, dst, src TSRMLS_CC); 329 336 IFASSERT(` { 330 337 int real = processor.p - oldp; … … 348 355 } 349 356 /* }}} */ 350 /* export: xc_entry_t *xc_processor_restore_xc_entry_t(xc_entry_t *dst, const xc_entry_t *src, zend_bool readonly_protection TSRMLS_DC); :export {{{ */ 351 xc_entry_t *xc_processor_restore_xc_entry_t(xc_entry_t *dst, const xc_entry_t *src, zend_bool readonly_protection TSRMLS_DC) { 357 ') 358 DEFINE_STORE_API(`xc_entry_t') 359 DEFINE_STORE_API(`xc_entry_data_php_t') 360 /* export: xc_entry_t *xc_processor_restore_xc_entry_t(xc_entry_t *dst, const xc_entry_t *src TSRMLS_DC); :export {{{ */ 361 xc_entry_t *xc_processor_restore_xc_entry_t(xc_entry_t *dst, const xc_entry_t *src TSRMLS_DC) { 362 xc_processor_t processor; 363 364 memset(&processor, 0, sizeof(processor)); 365 xc_restore_xc_entry_t(&processor, dst, src TSRMLS_CC); 366 367 return dst; 368 } 369 /* }}} */ 370 /* export: xc_entry_data_php_t *xc_processor_restore_xc_entry_data_php_t(xc_entry_data_php_t *dst, const xc_entry_data_php_t *src, zend_bool readonly_protection TSRMLS_DC); :export {{{ */ 371 xc_entry_data_php_t *xc_processor_restore_xc_entry_data_php_t(xc_entry_data_php_t *dst, const xc_entry_data_php_t *src, zend_bool readonly_protection TSRMLS_DC) { 352 372 xc_processor_t processor; 353 373 354 374 memset(&processor, 0, sizeof(processor)); 355 375 processor.readonly_protection = readonly_protection; 376 /* this function is used for php data only */ 356 377 if (src->have_references) { 357 378 processor.reference = 1; … … 361 382 zend_hash_init(&processor.zvalptrs, 0, NULL, NULL, 0); 362 383 } 363 xc_restore_xc_entry_ t(&processor, dst, src TSRMLS_CC);384 xc_restore_xc_entry_data_php_t(&processor, dst, src TSRMLS_CC); 364 385 if (processor.reference) { 365 386 zend_hash_destroy(&processor.zvalptrs);

