Stanislav Malyshev
b7a7b1a624
trailing whitespace removal
2015-01-10 15:07:38 -08:00
Dmitry Stogov
37466b0368
Use special flag (HASH_FLAG_INITIALIZED) instead of (nTableMask == 0) to indicate that HashTable is allocated.
...
Make nTableMask to be 0 for packed arrays.
Remove checks fo HASH_FLAG_PACKED in zend_hash_find/zend_hash_del and family (string keys are resolved through uninitialized_bucket).
Change HashTable layout for better locality.
2014-12-27 11:07:12 +03:00
Dmitry Stogov
ab0b15b8ff
Optimized destruction of extra arguments passed to user functions.
...
If no refcounted arguments are passed, then destruction code is not triggered at all.
(Full rebuild required)
2014-12-26 22:34:44 +03:00
Anatol Belski
61f90fbe0b
Merge remote-tracking branch 'origin/master' into native-tls
...
* origin/master:
Save 8 bytes on 64 bits
Conflicts:
Zend/zend_API.c
2014-12-15 07:13:09 +01:00
Xinchen Hui
8f177fde90
Save 8 bytes on 64 bits
2014-12-15 00:43:28 -05:00
Anatol Belski
bdeb220f48
first shot remove TSRMLS_* things
2014-12-13 23:06:14 +01:00
Dmitry Stogov
2f3c79b4bf
Improved basic zval copying primitives: ZVAL_COPY_VALUE(), ZVAL_COPY(), ZVAL_DUP()
2014-12-09 18:07:39 +03:00
Xinchen Hui
2d89574b58
Make it const as Levi asked for
2014-12-05 12:11:13 +08:00
Dmitry Stogov
1da14c9f81
Pack EX(frame_info) into EX(This).u1.v.reserved. Rename "frame"kind" into "call_kind" and VM_FRAME_... into ZEND_CALL_...
2014-11-28 10:33:03 +03:00
Dmitry Stogov
11384ba77b
Pack EX(num_args) into EX(This).u2.num_args
2014-11-28 10:28:49 +03:00
Dmitry Stogov
76019b86c0
Reorder fields for most often access pattern
2014-11-17 14:06:50 +03:00
Nikita Popov
876965d20a
Use intptr_t for zend_intptr_t typedef
...
Current code doesn't work for 64bit zend_long with 32bit pointers.
If intptr_t isn't defined on some platform, we should add it to
our php_stdint.h header.
2014-10-16 12:42:23 +02:00
Nikita Popov
2a9daf2e15
Drop zend_long64 in favor of int64_t
...
Also drop ZEND_HAVE_LONG64, because we already require the
presence of a int64_t type.
2014-10-16 12:42:22 +02:00
Nikita Popov
e5e9d8346f
Remove zend_get_class_entry function
2014-10-09 14:17:30 +02:00
Nikita Popov
43f1c94dda
Review a few more SEPARATE_ZVAL_IF_NOT_REF usages
2014-10-09 12:51:05 +02:00
Dmitry Stogov
67be34ec95
Remove useless parts of EX(old_error_reporting)
2014-10-07 17:54:24 +04:00
Dmitry Stogov
bd9a234645
Replaced EG(This) and EX(object) with EX(This).
...
Internal functions now recieves zend_execute_data as the first argument.
2014-10-03 19:32:46 +04:00
Dmitry Stogov
bccc653185
Avoid double IS_INTERNED() check
2014-09-19 17:32:50 +04:00
Dmitry Stogov
5185baab3e
Changed "inline" into "zend_always_inline"
2014-09-18 04:59:01 +04:00
Dmitry Stogov
61d37e059f
Moved some definitions from zend.h into more suitable header files
2014-09-18 04:58:04 +04:00
Dmitry Stogov
f5517d16d6
ws
2014-09-16 11:56:56 +04:00
Dmitry Stogov
e85545eca5
Removed IS_STR_OFFSET type and corresponding macros. Optimized string offset handling in ASSIGN_DIM opcode.
2014-09-08 15:46:45 +04:00
Anatol Belski
acad6f4700
fix 64 bit string index usage
2014-09-07 00:55:36 +02:00
Dmitry Stogov
9a958a086d
Simplify BEGIN_SILENCE/END_SILENCE to not modify ini entry value back and force
2014-09-03 15:17:50 +04:00
Dmitry Stogov
f0ad7472b0
Avoid memory allocation/deallocation in BEGIN_SILENCE/END_SILENCE opcode handlers.
2014-09-02 22:13:24 +04:00
Anatol Belski
5d062b6160
renamed macro
2014-08-26 09:55:17 +02:00
Anatol Belski
c429c74be9
generalize the zend_long stuff
2014-08-25 23:52:39 +02:00
Nikita Popov
6db293d5e0
Merge remote-tracking branch 'php-src/master' into ast
...
Conflicts:
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_globals.h
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_types.h
2014-08-25 21:52:18 +02:00
Anatol Belski
455741fce3
master renames phase 4
2014-08-25 20:57:25 +02:00
Anatol Belski
6f9f0bf205
master renames phase 2
2014-08-25 19:28:33 +02:00
Anatol Belski
c3e3c98ec6
master renames phase 1
2014-08-25 19:24:55 +02:00
Anatol Belski
8ee2a4a9b5
first shot on merging the core fro the int64 branch
2014-08-16 11:16:11 +02:00
Nikita Popov
21eb6807c9
Store lineno for zval ast nodes more efficiently
2014-07-27 13:25:32 +02:00
Dmitry Stogov
b3b616cf7e
Introduced immutable arrays. They don't need to be copyed and may be used directly from SHM.
2014-05-29 18:21:56 +04:00
Nikita Popov
4778586896
Fix typo
2014-05-22 19:00:25 +02:00
Anatol Belski
f089d63ddd
C89 compat
2014-05-13 14:04:53 +02:00
Dmitry Stogov
0c6a6f0fba
Re-applyed Bob's patch with minor fixes
2014-05-07 15:03:56 +04:00
Dmitry Stogov
4ecc527976
Reverted Bob's patch (it breaks many tests when run with opcache and needs to be fixed first).
2014-05-07 03:26:13 +04:00
Bob Weinand
628646ec93
Removed now superfluous #define IS_CONSTANT_ARRAY_EX
2014-05-06 18:16:12 +02:00
Bob Weinand
f3c1881f1d
Re-added fix for bug #66015 and adapted for phpng branch
2014-05-06 14:59:03 +02:00
Xinchen Hui
d8651fbe1c
Make they are in the same style of Z_ISREF
2014-05-03 16:08:58 +08:00
Dmitry Stogov
17d027ed47
Split IS_BOOL into IS_FALSE and IS_TRUE
2014-04-30 18:32:42 +04:00
Dmitry Stogov
8a8df2ce68
Changed order of types
2014-04-29 10:54:59 +04:00
Dmitry Stogov
72c287bd23
Combine HashTable.flags and HashTable.nApplyCount into single 32-bit word
2014-04-21 18:25:34 +04:00
Dmitry Stogov
e96073b1e4
Moved zend_literal->cache_slot right into zval.
...
It should be accessed using Z_CACHE_SLOT() macro.
zend_literal structure is removed.
API functions that accepted pointer to zend_literal now accept pointer to zval or cache_slot directly.
Calls of such functiond that now accept cache_slot need to be changed to pass -1 instead of NULL.
2014-04-17 15:40:45 +04:00
Dmitry Stogov
050d7e38ad
Cleanup (1-st round)
2014-04-15 15:40:40 +04:00
Dmitry Stogov
5dc52e4880
Fixed interface constants inheritance.
...
Now we use IS_REFERENCE for inhereted class constants.
I might miss some edje cases.
2014-04-14 13:24:43 +04:00
Dmitry Stogov
7402af380b
Fixed destruction of objects and iterators on unclean request shutdown and GC (few cases are still unfixed).
...
Now we destroy objects it two steps. At first - object properties of all objects and only then the objects their selves.
2014-04-09 01:50:15 +04:00
Dmitry Stogov
3bc8810b1e
Constant duplication optimization
...
Argument receiving optimization
2014-04-04 03:55:27 +04:00
Dmitry Stogov
58f0f2503c
Various VM optimizations
2014-04-04 02:52:53 +04:00