diff options
-rw-r--r-- | Zend/zend.c | 7 | ||||
-rw-r--r-- | Zend/zend_alloc.c | 8 | ||||
-rw-r--r-- | Zend/zend_alloc.h | 8 | ||||
-rw-r--r-- | Zend/zend_string.c | 10 | ||||
-rw-r--r-- | Zend/zend_string.h | 24 | ||||
-rw-r--r-- | ext/zlib/zlib_filter.c | 2 | ||||
-rw-r--r-- | main/php_version.h | 8 |
7 files changed, 39 insertions, 28 deletions
diff --git a/Zend/zend.c b/Zend/zend.c index 253c8515ed..36f8589409 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -445,10 +445,7 @@ static void compiler_globals_ctor(zend_compiler_globals *compiler_globals TSRMLS compiler_globals->script_encoding_list = NULL; #ifdef ZTS - compiler_globals->empty_string = zend_string_alloc(sizeof("")-1, 1); - compiler_globals->empty_string->val[0] = '\000'; - zend_string_hash_val(compiler_globals->empty_string); - compiler_globals->empty_string->gc.u.v.flags |= IS_STR_INTERNED; + zend_interned_empty_string_init(&compiler_globals->empty_string TSRMLS_CC); memset(compiler_globals->one_char_string, 0, sizeof(compiler_globals->one_char_string)); #endif @@ -478,7 +475,7 @@ static void compiler_globals_dtor(zend_compiler_globals *compiler_globals TSRMLS compiler_globals->last_static_member = 0; #ifdef ZTS - zend_string_release(compiler_globals->empty_string); + zend_interned_empty_string_free(&compiler_globals->empty_string TSRMLS_CC); #endif } /* }}} */ diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index a78c8b2fe3..aea04d82f0 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -1977,22 +1977,22 @@ void zend_mm_shutdown(zend_mm_heap *heap, int full, int silent TSRMLS_DC) /* PUBLIC API */ /**************/ -ZEND_API void *_zend_mm_alloc(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) +ZEND_API void* ZEND_FASTCALL _zend_mm_alloc(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { return zend_mm_alloc_heap(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); } -ZEND_API void _zend_mm_free(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) +ZEND_API void ZEND_FASTCALL _zend_mm_free(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { zend_mm_free_heap(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); } -void *_zend_mm_realloc(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) +void* ZEND_FASTCALL _zend_mm_realloc(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { return zend_mm_realloc_heap(heap, ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); } -ZEND_API size_t _zend_mm_block_size(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) +ZEND_API size_t ZEND_FASTCALL _zend_mm_block_size(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { return zend_mm_size(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); } diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h index d50d3d5cb8..6d310cbca3 100644 --- a/Zend/zend_alloc.h +++ b/Zend/zend_alloc.h @@ -238,10 +238,10 @@ typedef struct _zend_mm_heap zend_mm_heap; ZEND_API zend_mm_heap *zend_mm_startup(void); ZEND_API void zend_mm_shutdown(zend_mm_heap *heap, int full_shutdown, int silent TSRMLS_DC); -ZEND_API void *_zend_mm_alloc(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC; -ZEND_API void _zend_mm_free(zend_mm_heap *heap, void *p ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); -ZEND_API void *_zend_mm_realloc(zend_mm_heap *heap, void *p, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); -ZEND_API size_t _zend_mm_block_size(zend_mm_heap *heap, void *p ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); +ZEND_API void* ZEND_FASTCALL _zend_mm_alloc(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_MALLOC; +ZEND_API void ZEND_FASTCALL _zend_mm_free(zend_mm_heap *heap, void *p ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); +ZEND_API void* ZEND_FASTCALL _zend_mm_realloc(zend_mm_heap *heap, void *p, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); +ZEND_API size_t ZEND_FASTCALL _zend_mm_block_size(zend_mm_heap *heap, void *p ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC); #define zend_mm_alloc(heap, size) _zend_mm_alloc((heap), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) #define zend_mm_free(heap, p) _zend_mm_free((heap), (p) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC) diff --git a/Zend/zend_string.c b/Zend/zend_string.c index a4455e8da9..1833bbd241 100644 --- a/Zend/zend_string.c +++ b/Zend/zend_string.c @@ -45,9 +45,9 @@ static void _str_dtor(zval *zv) void zend_interned_strings_init(TSRMLS_D) { +#ifndef ZTS zend_string *str; -#ifndef ZTS zend_hash_init(&CG(interned_strings), 1024, NULL, _str_dtor, 1); CG(interned_strings).nTableMask = CG(interned_strings).nTableSize - 1; @@ -59,12 +59,6 @@ void zend_interned_strings_init(TSRMLS_D) str = zend_string_alloc(sizeof("")-1, 1); str->val[0] = '\000'; CG(empty_string) = zend_new_interned_string_int(str TSRMLS_CC); -#else - str = zend_string_alloc(sizeof("")-1, 1); - str->val[0] = '\000'; - zend_string_hash_val(str); - str->gc.u.v.flags |= IS_STR_INTERNED; - CG(empty_string) = str; #endif /* one char strings (the actual interned strings are going to be created by ext/opcache) */ @@ -79,8 +73,6 @@ void zend_interned_strings_dtor(TSRMLS_D) { #ifndef ZTS zend_hash_destroy(&CG(interned_strings)); -#else - zend_string_release(CG(empty_string)); #endif } diff --git a/Zend/zend_string.h b/Zend/zend_string.h index d30e14b5b3..1da3b511c0 100644 --- a/Zend/zend_string.h +++ b/Zend/zend_string.h @@ -282,6 +282,30 @@ EMPTY_SWITCH_DEFAULT_CASE() return hash; } +static zend_always_inline void zend_interned_empty_string_init(zend_string **s TSRMLS_DC) +{ + zend_string *str; + + str = zend_string_alloc(sizeof("")-1, 1); + str->val[0] = '\000'; + +#ifndef ZTS + *s = zend_new_interned_string(str TSRMLS_CC); +#else + zend_string_hash_val(str); + str->gc.u.v.flags |= IS_STR_INTERNED; + *s = str; +#endif +} + +static zend_always_inline void zend_interned_empty_string_free(zend_string **s TSRMLS_DC) +{ + if (NULL != *s) { + free(*s); + *s = NULL; + } +} + #endif /* ZEND_STRING_H */ /* diff --git a/ext/zlib/zlib_filter.c b/ext/zlib/zlib_filter.c index 6966c2a9ff..45ef2a8f7d 100644 --- a/ext/zlib/zlib_filter.c +++ b/ext/zlib/zlib_filter.c @@ -76,8 +76,6 @@ static php_stream_filter_status_t php_zlib_inflate_filter( while (buckets_in->head) { size_t bin = 0, desired; - bucket = buckets_in->head; - bucket = php_stream_bucket_make_writeable(buckets_in->head TSRMLS_CC); while (bin < (unsigned int) bucket->buflen) { diff --git a/main/php_version.h b/main/php_version.h index 87c2e4ac4d..d48ab24141 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -1,8 +1,8 @@ /* automatically generated by configure */ /* edit configure.in to change version number */ -#define PHP_MAJOR_VERSION 5 -#define PHP_MINOR_VERSION 7 +#define PHP_MAJOR_VERSION 7 +#define PHP_MINOR_VERSION 0 #define PHP_RELEASE_VERSION 0 #define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "5.7.0-dev" -#define PHP_VERSION_ID 50700 +#define PHP_VERSION "7.0.0-dev" +#define PHP_VERSION_ID 70000 |