Changeset 123 for eaccelerator/trunk/ea_store.c
- Timestamp:
- 07/10/05 10:12:34 (4 years ago)
- Files:
-
- eaccelerator/trunk/ea_store.c (modified) (34 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
eaccelerator/trunk/ea_store.c
r120 r123 47 47 static void calc_string (char *str, int len TSRMLS_DC) 48 48 { 49 if (len > MAX_DUP_STR_LEN || zend_hash_add (& MMCG (strings), str, len,49 if (len > MAX_DUP_STR_LEN || zend_hash_add (&EAG (strings), str, len, 50 50 &str, sizeof (char *), NULL) == SUCCESS) { 51 EACCELERATOR_ALIGN ( MMCG (mem));52 MMCG (mem) += len;51 EACCELERATOR_ALIGN (EAG (mem)); 52 EAG (mem) += len; 53 53 } 54 54 } … … 71 71 static void calc_zval_ptr (zval ** from TSRMLS_DC) 72 72 { 73 EACCELERATOR_ALIGN ( MMCG (mem));74 MMCG (mem) += sizeof (zval);73 EACCELERATOR_ALIGN (EAG (mem)); 74 EAG (mem) += sizeof (zval); 75 75 calc_zval (*from TSRMLS_CC); 76 76 } … … 79 79 static void calc_property_info (zend_property_info * from TSRMLS_DC) 80 80 { 81 EACCELERATOR_ALIGN ( MMCG (mem));82 MMCG (mem) += sizeof (zend_property_info);81 EACCELERATOR_ALIGN (EAG (mem)); 82 EAG (mem) += sizeof (zend_property_info); 83 83 calc_string (from->name, from->name_length + 1 TSRMLS_CC); 84 84 } … … 98 98 99 99 if (source->nNumOfElements > 0) { 100 if (! MMCG (compress)) {101 EACCELERATOR_ALIGN ( MMCG (mem));102 MMCG (mem) += source->nTableSize * sizeof (Bucket *);100 if (!EAG (compress)) { 101 EACCELERATOR_ALIGN (EAG (mem)); 102 EAG (mem) += source->nTableSize * sizeof (Bucket *); 103 103 } 104 104 p = start; 105 105 while (p) { 106 EACCELERATOR_ALIGN ( MMCG (mem));107 MMCG (mem) += offsetof (Bucket, arKey) + p->nKeyLength;106 EACCELERATOR_ALIGN (EAG (mem)); 107 EAG (mem) += offsetof (Bucket, arKey) + p->nKeyLength; 108 108 calc_bucket (p->pData TSRMLS_CC); 109 109 p = p->pListNext; … … 127 127 if (zv->value.ht == NULL || zv->value.ht == &EG (symbol_table)) { 128 128 } else { 129 EACCELERATOR_ALIGN ( MMCG (mem));130 MMCG (mem) += sizeof (HashTable);129 EACCELERATOR_ALIGN (EAG (mem)); 130 EAG (mem) += sizeof (HashTable); 131 131 calc_zval_hash (zv->value.ht); 132 132 } … … 136 136 if (zv->value.obj.ce != NULL) { 137 137 zend_class_entry *ce = zv->value.obj.ce; 138 if (! MMCG (compress)) {138 if (!EAG (compress)) { 139 139 ea_debug_error ("[%d] EACCELERATOR can't cache objects\n", 140 140 getpid ()); … … 154 154 } 155 155 if (zv->value.obj.properties != NULL) { 156 EACCELERATOR_ALIGN ( MMCG (mem));157 MMCG (mem) += sizeof (HashTable);156 EACCELERATOR_ALIGN (EAG (mem)); 157 EAG (mem) += sizeof (HashTable); 158 158 calc_zval_hash (zv->value.obj.properties); 159 159 } … … 175 175 176 176 if (from->type == ZEND_INTERNAL_FUNCTION) { 177 EACCELERATOR_ALIGN ( MMCG (mem));178 MMCG (mem) += sizeof (zend_internal_function);177 EACCELERATOR_ALIGN (EAG (mem)); 178 EAG (mem) += sizeof (zend_internal_function); 179 179 } else if (from->type == ZEND_USER_FUNCTION) { 180 EACCELERATOR_ALIGN ( MMCG (mem));181 MMCG (mem) += sizeof (eaccelerator_op_array);180 EACCELERATOR_ALIGN (EAG (mem)); 181 EAG (mem) += sizeof (eaccelerator_op_array); 182 182 } else { 183 183 ea_debug_error ("[%d] EACCELERATOR can't cache function \"%s\"\n", … … 188 188 if (from->num_args > 0) { 189 189 zend_uint i; 190 EACCELERATOR_ALIGN ( MMCG (mem));191 MMCG (mem) += from->num_args * sizeof (zend_arg_info);190 EACCELERATOR_ALIGN (EAG (mem)); 191 EAG (mem) += from->num_args * sizeof (zend_arg_info); 192 192 for (i = 0; i < from->num_args; i++) { 193 193 if (from->arg_info[i].name) { … … 229 229 230 230 if (from->opcodes != NULL) { 231 EACCELERATOR_ALIGN ( MMCG (mem));232 MMCG (mem) += from->last * sizeof (zend_op);231 EACCELERATOR_ALIGN (EAG (mem)); 232 EAG (mem) += from->last * sizeof (zend_op); 233 233 234 234 opline = from->opcodes; 235 235 end = opline + from->last; 236 MMCG (compress) = 0;236 EAG (compress) = 0; 237 237 for (; opline < end; opline++) { 238 238 /* … … 244 244 calc_zval (&opline->op2.u.constant TSRMLS_CC); 245 245 } 246 MMCG (compress) = 1;246 EAG (compress) = 1; 247 247 } 248 248 if (from->brk_cont_array != NULL) { 249 EACCELERATOR_ALIGN ( MMCG (mem));250 MMCG (mem) += sizeof (zend_brk_cont_element) * from->last_brk_cont;249 EACCELERATOR_ALIGN (EAG (mem)); 250 EAG (mem) += sizeof (zend_brk_cont_element) * from->last_brk_cont; 251 251 } 252 252 #ifdef ZEND_ENGINE_2 253 253 /* HOESH: try & catch support */ 254 254 if (from->try_catch_array != NULL) { 255 EACCELERATOR_ALIGN ( MMCG (mem));256 MMCG (mem) += sizeof (zend_try_catch_element) * from->last_try_catch;255 EACCELERATOR_ALIGN (EAG (mem)); 256 EAG (mem) += sizeof (zend_try_catch_element) * from->last_try_catch; 257 257 } 258 258 #endif 259 259 if (from->static_variables != NULL) { 260 EACCELERATOR_ALIGN ( MMCG (mem));261 MMCG (mem) += sizeof (HashTable);260 EACCELERATOR_ALIGN (EAG (mem)); 261 EAG (mem) += sizeof (HashTable); 262 262 calc_zval_hash (from->static_variables); 263 263 } … … 280 280 zend_bailout (); 281 281 } 282 EACCELERATOR_ALIGN ( MMCG (mem));283 MMCG (mem) += sizeof (eaccelerator_class_entry);282 EACCELERATOR_ALIGN (EAG (mem)); 283 EAG (mem) += sizeof (eaccelerator_class_entry); 284 284 285 285 if (from->name != NULL) { … … 311 311 calc_hash (&from->properties_info, (calc_bucket_t) calc_property_info); 312 312 if (from->static_members != NULL) { 313 EACCELERATOR_ALIGN ( MMCG (mem));314 MMCG (mem) += sizeof (HashTable);313 EACCELERATOR_ALIGN (EAG (mem)); 314 EAG (mem) += sizeof (HashTable); 315 315 calc_zval_hash (from->static_members); 316 316 } … … 329 329 char *x; 330 330 int len = strlen (key); 331 MMCG (compress) = 1;332 MMCG (mem) = NULL;333 334 zend_hash_init (& MMCG (strings), 0, NULL, NULL, 0);335 MMCG (mem) += offsetof (mm_cache_entry, realfilename) + len + 1;336 zend_hash_add (& MMCG (strings), key, len + 1, &key, sizeof (char *), NULL);331 EAG (compress) = 1; 332 EAG (mem) = NULL; 333 334 zend_hash_init (&EAG (strings), 0, NULL, NULL, 0); 335 EAG (mem) += offsetof (mm_cache_entry, realfilename) + len + 1; 336 zend_hash_add (&EAG (strings), key, len + 1, &key, sizeof (char *), NULL); 337 337 b = c; 338 338 while (b != NULL) { 339 EACCELERATOR_ALIGN ( MMCG (mem));340 MMCG (mem) += offsetof (mm_fc_entry, htabkey) + b->nKeyLength;339 EACCELERATOR_ALIGN (EAG (mem)); 340 EAG (mem) += offsetof (mm_fc_entry, htabkey) + b->nKeyLength; 341 341 x = b->arKey; 342 zend_hash_add (& MMCG (strings), b->arKey, b->nKeyLength, &x,342 zend_hash_add (&EAG (strings), b->arKey, b->nKeyLength, &x, 343 343 sizeof (char *), NULL); 344 344 b = b->pListNext; … … 346 346 b = f; 347 347 while (b != NULL) { 348 EACCELERATOR_ALIGN ( MMCG (mem));349 MMCG (mem) += offsetof (mm_fc_entry, htabkey) + b->nKeyLength;348 EACCELERATOR_ALIGN (EAG (mem)); 349 EAG (mem) += offsetof (mm_fc_entry, htabkey) + b->nKeyLength; 350 350 x = b->arKey; 351 zend_hash_add (& MMCG (strings), b->arKey, b->nKeyLength, &x,351 zend_hash_add (&EAG (strings), b->arKey, b->nKeyLength, &x, 352 352 sizeof (char *), NULL); 353 353 b = b->pListNext; … … 366 366 } 367 367 calc_op_array (op_array TSRMLS_CC); 368 EACCELERATOR_ALIGN ( MMCG (mem));369 zend_hash_destroy (& MMCG (strings));370 return (size_t) MMCG (mem);368 EACCELERATOR_ALIGN (EAG (mem)); 369 zend_hash_destroy (&EAG (strings)); 370 return (size_t) EAG (mem); 371 371 } 372 372 … … 376 376 char *p; 377 377 if (len > MAX_DUP_STR_LEN) { 378 EACCELERATOR_ALIGN ( MMCG (mem));379 p = (char *) MMCG (mem);380 MMCG (mem) += len;378 EACCELERATOR_ALIGN (EAG (mem)); 379 p = (char *) EAG (mem); 380 EAG (mem) += len; 381 381 memcpy (p, str, len); 382 } else if (zend_hash_find (& MMCG (strings), str, len, (void *) &p) ==382 } else if (zend_hash_find (&EAG (strings), str, len, (void *) &p) == 383 383 SUCCESS) { 384 384 p = *(char **) p; 385 385 } else { 386 EACCELERATOR_ALIGN ( MMCG (mem));387 p = (char *) MMCG (mem);388 MMCG (mem) += len;386 EACCELERATOR_ALIGN (EAG (mem)); 387 p = (char *) EAG (mem); 388 EAG (mem) += len; 389 389 memcpy (p, str, len); 390 zend_hash_add (& MMCG (strings), str, len, (void *) &p, sizeof (char *),390 zend_hash_add (&EAG (strings), str, len, (void *) &p, sizeof (char *), 391 391 NULL); 392 392 } … … 411 411 { 412 412 zval *to; 413 EACCELERATOR_ALIGN ( MMCG (mem));414 to = (zval *) MMCG (mem);415 MMCG (mem) += sizeof (zval);413 EACCELERATOR_ALIGN (EAG (mem)); 414 to = (zval *) EAG (mem); 415 EAG (mem) += sizeof (zval); 416 416 memcpy (to, from, sizeof (zval)); 417 417 store_zval (to TSRMLS_CC); … … 428 428 429 429 if (source->nNumOfElements > 0) { 430 if (! MMCG (compress)) {431 EACCELERATOR_ALIGN ( MMCG (mem));432 target->arBuckets = (Bucket **) MMCG (mem);433 MMCG (mem) += target->nTableSize * sizeof (Bucket *);430 if (!EAG (compress)) { 431 EACCELERATOR_ALIGN (EAG (mem)); 432 target->arBuckets = (Bucket **) EAG (mem); 433 EAG (mem) += target->nTableSize * sizeof (Bucket *); 434 434 memset (target->arBuckets, 0, 435 435 target->nTableSize * sizeof (Bucket *)); … … 445 445 np = NULL; 446 446 while (p) { 447 EACCELERATOR_ALIGN ( MMCG (mem));448 np = (Bucket *) MMCG (mem);449 MMCG (mem) += offsetof (Bucket, arKey) + p->nKeyLength;450 451 if (! MMCG (compress)) {447 EACCELERATOR_ALIGN (EAG (mem)); 448 np = (Bucket *) EAG (mem); 449 EAG (mem) += offsetof (Bucket, arKey) + p->nKeyLength; 450 451 if (!EAG (compress)) { 452 452 int nIndex = p->h % source->nTableSize; 453 453 if (target->arBuckets[nIndex]) { … … 510 510 } else { 511 511 HashTable *p; 512 EACCELERATOR_ALIGN ( MMCG (mem));513 p = (HashTable *) MMCG (mem);514 MMCG (mem) += sizeof (HashTable);512 EACCELERATOR_ALIGN (EAG (mem)); 513 p = (HashTable *) EAG (mem); 514 EAG (mem) += sizeof (HashTable); 515 515 store_zval_hash (p, zv->value.ht); 516 516 zv->value.ht = p; … … 518 518 break; 519 519 case IS_OBJECT: 520 if (! MMCG (compress)) {520 if (!EAG (compress)) { 521 521 return; 522 522 } … … 531 531 if (zv->value.obj.properties != NULL) { 532 532 HashTable *p; 533 EACCELERATOR_ALIGN ( MMCG (mem));534 p = (HashTable *) MMCG (mem);535 MMCG (mem) += sizeof (HashTable);533 EACCELERATOR_ALIGN (EAG (mem)); 534 p = (HashTable *) EAG (mem); 535 EAG (mem) += sizeof (HashTable); 536 536 store_zval_hash (p, zv->value.obj.properties); 537 537 zv->value.obj.properties = p; … … 561 561 562 562 if (from->type == ZEND_INTERNAL_FUNCTION) { 563 EACCELERATOR_ALIGN ( MMCG (mem));564 to = (eaccelerator_op_array *) MMCG (mem);565 MMCG (mem) += offsetof (eaccelerator_op_array, opcodes);563 EACCELERATOR_ALIGN (EAG (mem)); 564 to = (eaccelerator_op_array *) EAG (mem); 565 EAG (mem) += offsetof (eaccelerator_op_array, opcodes); 566 566 } else if (from->type == ZEND_USER_FUNCTION) { 567 EACCELERATOR_ALIGN ( MMCG (mem));568 to = (eaccelerator_op_array *) MMCG (mem);569 MMCG (mem) += sizeof (eaccelerator_op_array);567 EACCELERATOR_ALIGN (EAG (mem)); 568 to = (eaccelerator_op_array *) EAG (mem); 569 EAG (mem) += sizeof (eaccelerator_op_array); 570 570 } else { 571 571 return NULL; … … 578 578 if (from->num_args > 0) { 579 579 zend_uint i; 580 EACCELERATOR_ALIGN ( MMCG (mem));581 to->arg_info = (zend_arg_info *) MMCG (mem);582 MMCG (mem) += from->num_args * sizeof (zend_arg_info);580 EACCELERATOR_ALIGN (EAG (mem)); 581 to->arg_info = (zend_arg_info *) EAG (mem); 582 EAG (mem) += from->num_args * sizeof (zend_arg_info); 583 583 for (i = 0; i < from->num_args; i++) { 584 584 if (from->arg_info[i].name) { … … 677 677 678 678 if (from->opcodes != NULL) { 679 EACCELERATOR_ALIGN ( MMCG (mem));680 to->opcodes = (zend_op *) MMCG (mem);681 MMCG (mem) += from->last * sizeof (zend_op);679 EACCELERATOR_ALIGN (EAG (mem)); 680 to->opcodes = (zend_op *) EAG (mem); 681 EAG (mem) += from->last * sizeof (zend_op); 682 682 memcpy (to->opcodes, from->opcodes, from->last * sizeof (zend_op)); 683 683 684 684 opline = to->opcodes; 685 685 end = opline + to->last; 686 MMCG (compress) = 0;686 EAG (compress) = 0; 687 687 for (; opline < end; opline++) { 688 688 /* … … 709 709 #endif 710 710 } 711 MMCG (compress) = 1;711 EAG (compress) = 1; 712 712 } 713 713 if (from->brk_cont_array != NULL) { 714 EACCELERATOR_ALIGN ( MMCG (mem));715 to->brk_cont_array = (zend_brk_cont_element *) MMCG (mem);716 MMCG (mem) += sizeof (zend_brk_cont_element) * from->last_brk_cont;714 EACCELERATOR_ALIGN (EAG (mem)); 715 to->brk_cont_array = (zend_brk_cont_element *) EAG (mem); 716 EAG (mem) += sizeof (zend_brk_cont_element) * from->last_brk_cont; 717 717 memcpy (to->brk_cont_array, from->brk_cont_array, 718 718 sizeof (zend_brk_cont_element) * from->last_brk_cont); … … 723 723 /* HOESH: try & catch support */ 724 724 if (from->try_catch_array != NULL) { 725 EACCELERATOR_ALIGN ( MMCG (mem));726 to->try_catch_array = (zend_try_catch_element *) MMCG (mem);727 MMCG (mem) += sizeof (zend_try_catch_element) * from->last_try_catch;725 EACCELERATOR_ALIGN (EAG (mem)); 726 to->try_catch_array = (zend_try_catch_element *) EAG (mem); 727 EAG (mem) += sizeof (zend_try_catch_element) * from->last_try_catch; 728 728 memcpy (to->try_catch_array, from->try_catch_array, 729 729 sizeof (zend_try_catch_element) * from->last_try_catch); … … 733 733 #endif 734 734 if (from->static_variables != NULL) { 735 EACCELERATOR_ALIGN ( MMCG (mem));736 to->static_variables = (HashTable *) MMCG (mem);737 MMCG (mem) += sizeof (HashTable);735 EACCELERATOR_ALIGN (EAG (mem)); 736 to->static_variables = (HashTable *) EAG (mem); 737 EAG (mem) += sizeof (HashTable); 738 738 store_zval_hash (to->static_variables, from->static_variables); 739 739 } … … 760 760 { 761 761 zend_property_info *to; 762 EACCELERATOR_ALIGN ( MMCG (mem));763 to = (zend_property_info *) MMCG (mem);764 MMCG (mem) += sizeof (zend_property_info);762 EACCELERATOR_ALIGN (EAG (mem)); 763 to = (zend_property_info *) EAG (mem); 764 EAG (mem) += sizeof (zend_property_info); 765 765 memcpy (to, from, sizeof (zend_property_info)); 766 766 to->name = store_string (from->name, from->name_length + 1 TSRMLS_CC); … … 772 772 { 773 773 eaccelerator_class_entry *to; 774 EACCELERATOR_ALIGN ( MMCG (mem));775 to = (eaccelerator_class_entry *) MMCG (mem);776 MMCG (mem) += sizeof (eaccelerator_class_entry);774 EACCELERATOR_ALIGN (EAG (mem)); 775 to = (eaccelerator_class_entry *) EAG (mem); 776 EAG (mem) += sizeof (eaccelerator_class_entry); 777 777 to->type = from->type; 778 778 to->name = NULL; … … 803 803 from->parent ? from->parent->name : "NULL"); 804 804 #ifdef DEBUG 805 MMCG (xpad)++;805 EAG (xpad)++; 806 806 #endif 807 807 … … 850 850 (store_bucket_t) store_property_info); 851 851 if (from->static_members != NULL) { 852 EACCELERATOR_ALIGN ( MMCG (mem));853 to->static_members = (HashTable *) MMCG (mem);854 MMCG (mem) += sizeof (HashTable);852 EACCELERATOR_ALIGN (EAG (mem)); 853 to->static_members = (HashTable *) EAG (mem); 854 EAG (mem) += sizeof (HashTable); 855 855 store_zval_hash (to->static_members, from->static_members); 856 856 } … … 862 862 863 863 #ifdef DEBUG 864 MMCG (xpad)--;864 EAG (xpad)--; 865 865 #endif 866 866