]> granicus.if.org Git - php/commitdiff
- MFZE1
authorAndi Gutmans <andi@php.net>
Sat, 22 Jun 2002 14:37:49 +0000 (14:37 +0000)
committerAndi Gutmans <andi@php.net>
Sat, 22 Jun 2002 14:37:49 +0000 (14:37 +0000)
Zend/zend_alloc.c
Zend/zend_alloc.h
Zend/zend_globals.h
Zend/zend_language_parser.y

index 077f4d8a6ee68539988abcb8ea46d5c3169c23f9..8dbc4a14625134e0aaa1c0f5db0fb050164be07d 100644 (file)
@@ -93,10 +93,8 @@ static long mem_block_end_magic = MEM_BLOCK_END_MAGIC;
 
 
 #define REMOVE_POINTER_FROM_LIST(p)                            \
-       if (!p->persistent && p==AG(head)) {            \
+       if (p==AG(head)) {                                                      \
                AG(head) = p->pNext;                                    \
-       } else if (p->persistent && p==AG(phead)) {     \
-               AG(phead) = p->pNext;                                   \
        } else {                                                                        \
                p->pLast->pNext = p->pNext;                             \
        }                                                                                       \
@@ -105,19 +103,11 @@ static long mem_block_end_magic = MEM_BLOCK_END_MAGIC;
        }
 
 #define ADD_POINTER_TO_LIST(p)         \
-       if (p->persistent) {                    \
-               p->pNext = AG(phead);           \
-               if (AG(phead)) {                        \
-                       AG(phead)->pLast = p;   \
-               }                                                       \
-               AG(phead) = p;                          \
-       } else {                                                \
-               p->pNext = AG(head);            \
-               if (AG(head)) {                         \
-                       AG(head)->pLast = p;    \
-               }                                                       \
-               AG(head) = p;                           \
-       }                                                               \
+       p->pNext = AG(head);            \
+       if (AG(head)) {                         \
+               AG(head)->pLast = p;    \
+       }                                                       \
+       AG(head) = p;                           \
        p->pLast = (zend_mem_header *) NULL;
 
 #define DECLARE_CACHE_VARS()   \
@@ -157,7 +147,6 @@ ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
                AG(cache_stats)[CACHE_INDEX][1]++;
                memcpy((((char *) p) + sizeof(zend_mem_header) + MEM_HEADER_PADDING + size), &mem_block_end_magic, sizeof(long));
 #endif
-               p->persistent = 0;
                p->cached = 0;
                p->size = size;
                return (void *)((char *)p + sizeof(zend_mem_header) + MEM_HEADER_PADDING);
@@ -182,7 +171,7 @@ ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
                HANDLE_UNBLOCK_INTERRUPTIONS();
                return (void *)p;
        }
-       p->persistent = p->cached = 0;
+       p->cached = 0;
        ADD_POINTER_TO_LIST(p);
        p->size = size; /* Save real size for correct cache output */
 #if ZEND_DEBUG
@@ -233,7 +222,7 @@ ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
 #endif
 
        if (!ZEND_DISABLE_MEMORY_CACHE 
-               && !p->persistent && (CACHE_INDEX < MAX_CACHED_MEMORY) && (AG(cache_count)[CACHE_INDEX] < MAX_CACHED_ENTRIES)) {
+               && (CACHE_INDEX < MAX_CACHED_MEMORY) && (AG(cache_count)[CACHE_INDEX] < MAX_CACHED_ENTRIES)) {
                AG(cache)[CACHE_INDEX][AG(cache_count)[CACHE_INDEX]++] = p;
                p->cached = 1;
 #if ZEND_DEBUG
@@ -408,7 +397,7 @@ ZEND_API void start_memory_manager(TSRMLS_D)
 #endif
 #endif
 
-       AG(phead) = AG(head) = NULL;
+       AG(head) = NULL;
        
 #if MEMORY_LIMIT
        AG(memory_limit) = 1<<30;               /* ridiculous limit, effectively no limit */
index 0cbe9a801cc7749d56c36b61ec7593a40fcfb19c..66b394bf768ca10a61e96a0c5220080cf2d5b1e9 100644 (file)
@@ -45,8 +45,7 @@ typedef struct _zend_mem_header {
 #endif
     struct _zend_mem_header *pNext;
     struct _zend_mem_header *pLast;
-       unsigned int size:30;
-       unsigned int persistent:1;
+       unsigned int size:31;
        unsigned int cached:1;
 } zend_mem_header;
 
index 046b0619ce6c35694094afcee309de0224c75b88..fa9cde9cf11b54bf0ff621df1c494bc6b44915fe 100644 (file)
@@ -213,7 +213,6 @@ struct _zend_executor_globals {
 
 struct _zend_alloc_globals {
        zend_mem_header *head;          /* standard list */
-       zend_mem_header *phead;         /* persistent list */
        void *cache[MAX_CACHED_MEMORY][MAX_CACHED_ENTRIES];
        unsigned int cache_count[MAX_CACHED_MEMORY];
        void *fast_cache_list_head[MAX_FAST_CACHE_TYPES];
index a6a6fc7a83dee97b2566c8bffaf269609e0d6e34..ea8b781f69114b0c37cd4ac953a2132f4740bfb4 100644 (file)
@@ -608,7 +608,7 @@ common_scalar:
 static_scalar: /* compile-time evaluated scalars */
                common_scalar           { $$ = $1; }
        |       T_STRING                { zend_do_fetch_constant(&$$, NULL, &$1, ZEND_CT TSRMLS_CC); }
-       |       '+' static_scalar       { $$ = $1; }
+       |       '+' static_scalar       { $$ = $2; }
        |       '-' static_scalar       { zval minus_one;  minus_one.type = IS_LONG; minus_one.value.lval = -1;  mul_function(&$2.u.constant, &$2.u.constant, &minus_one TSRMLS_CC);  $$ = $2; }
        |       T_ARRAY '(' static_array_pair_list ')' { $$ = $3; $$.u.constant.type = IS_CONSTANT_ARRAY; }
        |       parse_class_name_entry T_STRING { zend_do_fetch_constant(&$$, &$1, &$2, ZEND_CT TSRMLS_CC); }