Show
Ignore:
Timestamp:
06/20/08 11:20:22 (7 months ago)
Author:
bart
Message:

Port do_alloca call to PHP 5.3

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • eaccelerator/trunk/optimize.c

    r344 r351  
    179179{ 
    180180  BB* p = bb; 
     181#ifdef ZEND_ENGINE_2_3 
     182  ALLOCA_FLAG(use_heap) 
     183#endif 
     184 
    181185  memset(global, 0, op_array->T * sizeof(char)); 
    182186  if (p != NULL && p->next != NULL) { 
    183187    int bb_count = 0; 
    184     char *def     = do_alloca(op_array->T * sizeof(char)); 
     188#ifdef ZEND_ENGINE_2_3 
     189    char *def = do_alloca(op_array->T * sizeof(char), use_heap); 
     190#else 
     191    char *def = do_alloca(op_array->T * sizeof(char)); 
     192#endif 
    185193#if 0 
    186194    zend_printf("<hr>%s::%s<br>", op_array->filename, op_array->function_name); 
     
    225233      bb_count++; 
    226234    } 
     235#ifdef ZEND_ENGINE_2_3 
     236    free_alloca(def, use_heap); 
     237#else 
    227238    free_alloca(def); 
     239#endif 
    228240  } 
    229241  { 
     242#ifdef ZEND_ENGINE_2_3 
     243    char *used = do_alloca(op_array->T * sizeof(char), use_heap); 
     244#else 
    230245    char *used = do_alloca(op_array->T * sizeof(char)); 
     246#endif 
    231247    p = bb; 
    232248    while (p != NULL) { 
     
    333349      p = p->next; 
    334350    } 
     351#ifdef ZEND_ENGINE_2_3 
     352    free_alloca(used, use_heap); 
     353#else 
    335354    free_alloca(used); 
     355#endif 
    336356  } 
    337357/* 
     
    14611481  } c; 
    14621482  int retval; 
     1483#ifdef ZEND_ENGINE_2_3 
     1484  ALLOCA_FLAG(use_heap) 
     1485  char *lookup_name = do_alloca(name_len+1, use_heap); 
     1486#else 
    14631487  char *lookup_name = do_alloca(name_len+1); 
     1488#endif 
    14641489  memcpy(lookup_name, name, name_len); 
    14651490  lookup_name[name_len] = '\0'; 
     
    14821507    } 
    14831508  } 
     1509#ifdef ZEND_ENGINE_2_3 
     1510  free_alloca(lookup_name, use_heap); 
     1511#else 
    14841512  free_alloca(lookup_name); 
     1513#endif 
    14851514  return retval; 
    14861515} 
     
    16001629  HashTable fetch_dim; 
    16011630 
     1631#ifdef ZEND_ENGINE_2_3 
     1632  ALLOCA_FLAG(use_heap) 
     1633  zend_op** Ts = do_alloca(sizeof(zend_op*)*op_array->T, use_heap); 
     1634#else 
    16021635  zend_op** Ts = do_alloca(sizeof(zend_op*)*op_array->T); 
     1636#endif 
    16031637  memset(Ts, 0, sizeof(zend_op*)*op_array->T); 
    16041638 
     
    26072641  zend_hash_destroy(&fetch_dim); 
    26082642  zend_hash_destroy(&assigns); 
     2643#ifdef ZEND_ENGINE_2_3 
     2644  free_alloca(Ts, use_heap); 
     2645#else 
    26092646  free_alloca(Ts); 
     2647#endif 
    26102648} 
    26112649 
     
    30603098  zend_uint i; 
    30613099  zend_uint n = 0; 
    3062   int* assigned = do_alloca(op_array->T * sizeof(int)); 
     3100     
     3101#ifdef ZEND_ENGINE_2_3 
     3102  ALLOCA_FLAG(use_heap) 
     3103  int* assigned  = do_alloca(op_array->T * sizeof(int), use_heap); 
     3104  char* reg_pool = do_alloca(op_array->T * sizeof(char), use_heap); 
     3105  char* used     = do_alloca(op_array->T * sizeof(char), use_heap); 
     3106#else 
     3107  int* assigned  = do_alloca(op_array->T * sizeof(int)); 
    30633108  char* reg_pool = do_alloca(op_array->T * sizeof(char)); 
    30643109  char* used     = do_alloca(op_array->T * sizeof(char)); 
     3110#endif 
    30653111 
    30663112  for (i = 0; i < op_array->T; i++) { 
     
    31443190  } 
    31453191  op_array->T = n; 
     3192#ifdef ZEND_ENGINE_2_3 
     3193  free_alloca(used, use_heap); 
     3194  free_alloca(reg_pool, use_heap); 
     3195  free_alloca(assigned, use_heap); 
     3196#else 
    31463197  free_alloca(used); 
    31473198  free_alloca(reg_pool); 
    31483199  free_alloca(assigned); 
     3200#endif 
    31493201} 
    31503202 
     
    31723224  BB* bb; 
    31733225 
     3226#ifdef ZEND_ENGINE_2_3 
     3227  ALLOCA_FLAG(use_heap) 
     3228#endif 
     3229 
    31743230  TSRMLS_FETCH(); 
    31753231  if (!EAG(compiler) || op_array->type != ZEND_USER_FUNCTION) { 
     
    31783234 
    31793235  /* Allocate memory for CFG */ 
    3180   if ((bb = do_alloca(sizeof(BB)*(op_array->last+1))) == NULL) return; 
     3236#ifdef ZEND_ENGINE_2_3 
     3237  bb = do_alloca(sizeof(BB)*(op_array->last+1), use_heap); 
     3238#else 
     3239  bb = do_alloca(sizeof(BB)*(op_array->last+1)); 
     3240#endif 
     3241  if (bb == NULL) { 
     3242      return; 
     3243  } 
    31813244  memset(bb, 0, sizeof(BB)*(op_array->last+1)); 
    31823245 
    31833246  /* Find All Basic Blocks and build CFG */ 
    31843247  if (build_cfg(op_array, bb)) { 
     3248#ifdef ZEND_ENGINE_2_3 
     3249    char *global = do_alloca(op_array->T * sizeof(char), use_heap); 
     3250#else 
    31853251    char *global = do_alloca(op_array->T * sizeof(char)); 
     3252#endif 
    31863253    if (global == NULL) return; 
    31873254 
     
    32273294    /* dump_bb(bb, op_array); */ 
    32283295 
     3296#ifdef ZEND_ENGINE_2_3 
     3297    free_alloca(global, use_heap); 
     3298#else 
    32293299    free_alloca(global); 
     3300#endif 
    32303301  } 
    32313302  else { 
     
    32403311    restore_operand_types(op_array); 
    32413312  } 
    3242   free_alloca(bb); 
     3313#ifdef ZEND_ENGINE_2_3 
     3314    free_alloca(bb, use_heap); 
     3315#else 
     3316    free_alloca(bb); 
     3317#endif 
    32433318} 
    32443319#endif