diff options
| author | Ondřej Surý <ondrej@sury.org> | 2010-01-07 13:31:53 +0100 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2010-01-07 13:31:53 +0100 |
| commit | 0fab6db7cac8d2be99579dd049f812a8ff98e74f (patch) | |
| tree | 91f01b0d06916c78262404096bfd466b8e95e5b5 /Zend | |
| parent | d3a8757891280dc6650ca7eead67830c794b0e7b (diff) | |
| download | php-upstream/5.3.1.tar.gz | |
Imported Upstream version 5.3.1upstream/5.3.1
Diffstat (limited to 'Zend')
143 files changed, 3493 insertions, 2969 deletions
diff --git a/Zend/ChangeLog b/Zend/ChangeLog index c9ab06e8f..79e345e13 100644 --- a/Zend/ChangeLog +++ b/Zend/ChangeLog @@ -9403,7 +9403,7 @@ 2003-06-10 Jani Taskinen <sniper@iki.fi> * zend_multiply.h: - - Missing $Id: ChangeLog,v 1.745 2005/08/06 05:37:51 changelog Exp $ tag + - Missing $Id: ChangeLog 242949 2007-09-26 15:44:16Z cvs2svn $ tag 2003-06-10 James Cox <james@imajes.info> @@ -11127,7 +11127,7 @@ zend_types.h zend_variables.c zend_variables.h: - - Added some missing CVS $Id: ChangeLog,v 1.745 2005/08/06 05:37:51 changelog Exp $ tags, headers and footers. + - Added some missing CVS $Id: ChangeLog 242949 2007-09-26 15:44:16Z cvs2svn $ tags, headers and footers. 2003-01-30 Ilia Alshanetsky <ilia@prohost.org> diff --git a/Zend/RFCs/002.txt b/Zend/RFCs/002.txt index 6b6e0bae2..a013b9118 100644 --- a/Zend/RFCs/002.txt +++ b/Zend/RFCs/002.txt @@ -1,5 +1,5 @@ Title: Zend 2.0 Namespaces -Version: $Revision: 1.4 $ +Version: $Revision: 148341 $ Status: declined Maintainer: Stig S. Bakken <ssb@php.net> Created: 2001-09-08 diff --git a/Zend/RFCs/003.txt b/Zend/RFCs/003.txt index be0b1fae0..ceda72b2c 100644 --- a/Zend/RFCs/003.txt +++ b/Zend/RFCs/003.txt @@ -1,5 +1,5 @@ Title: Loose type requirements for functions -Version: $Revision: 1.1 $ +Version: $Revision: 57685 $ Status: draft Maintainer: Brian Moon <brianm@dealnews.com> Created: 2001-09-17 diff --git a/Zend/Zend.m4 b/Zend/Zend.m4 index f63320469..089dce9d8 100644 --- a/Zend/Zend.m4 +++ b/Zend/Zend.m4 @@ -1,5 +1,5 @@ dnl -dnl $Id: Zend.m4,v 1.58.4.4.2.6 2009/06/04 18:20:42 mattwil Exp $ +dnl $Id: Zend.m4 286859 2009-08-06 01:33:54Z scottmac $ dnl dnl This file contains Zend specific autoconf functions. dnl @@ -62,18 +62,6 @@ unix.h \ stdlib.h \ dlfcn.h) -dnl Don't use mach-o/dyld.h on Darwin 8+, dl* is recommended by Apple from there on -dnl See http://developer.apple.com/documentation/DeveloperTools/Conceptual/MachOTopics/Articles/loading_code.html -case $host_alias in -*darwin[[89]]*) - ;; -*) - AC_CHECK_HEADERS([ \ -mach-o/dyld.h -],[],[][]) - ;; -esac - AC_TYPE_SIZE_T AC_TYPE_SIGNAL diff --git a/Zend/acconfig.h b/Zend/acconfig.h index e376a5a52..bb949a6cb 100644 --- a/Zend/acconfig.h +++ b/Zend/acconfig.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: acconfig.h,v 1.40.2.1.2.1.2.3 2008/12/31 11:15:31 sebastian Exp $ */ +/* $Id: acconfig.h 272370 2008-12-31 11:15:49Z sebastian $ */ #if defined(__GNUC__) && __GNUC__ >= 4 # define ZEND_API __attribute__ ((visibility("default"))) diff --git a/Zend/acinclude.m4 b/Zend/acinclude.m4 index 62ff872a2..046950db1 100644 --- a/Zend/acinclude.m4 +++ b/Zend/acinclude.m4 @@ -1,4 +1,4 @@ -dnl $Id: acinclude.m4,v 1.15.2.2.2.2.2.4 2009/02/14 21:08:00 rasmus Exp $ +dnl $Id: acinclude.m4 275828 2009-02-14 21:08:02Z rasmus $ dnl dnl This file contains local autoconf functions. diff --git a/Zend/bench.php b/Zend/bench.php index 5f771803c..42b333fce 100644 --- a/Zend/bench.php +++ b/Zend/bench.php @@ -3,6 +3,7 @@ if (function_exists("date_default_timezone_set")) { date_default_timezone_set("UTC"); } +date_default_timezone_set('UTC'); function simple() { $a = 0; for ($i = 0; $i < 1000000; $i++) diff --git a/Zend/build.mk b/Zend/build.mk index 79d1c5299..0931c3f44 100644 --- a/Zend/build.mk +++ b/Zend/build.mk @@ -5,7 +5,7 @@ # # Written by Sascha Schumann # -# $Id: build.mk,v 1.2 1999/10/10 02:02:13 sascha Exp $ +# $Id: build.mk 242949 2007-09-26 15:44:16Z cvs2svn $ LT_TARGETS = ltmain.sh ltconfig diff --git a/Zend/configure.in b/Zend/configure.in index 1b13ac402..239b21fab 100644 --- a/Zend/configure.in +++ b/Zend/configure.in @@ -1,4 +1,4 @@ -dnl $Id: configure.in,v 1.36.6.1 2008/03/16 21:05:33 helly Exp $ +dnl $Id: configure.in 255174 2008-03-16 21:06:55Z helly $ dnl Process this file with autoconf to produce a configure script. AC_INIT(zend.c) diff --git a/Zend/header b/Zend/header index baa68e23a..68bf97b36 100644 --- a/Zend/header +++ b/Zend/header @@ -16,4 +16,4 @@ +----------------------------------------------------------------------+ */ -/* $Id: header,v 1.1.2.1.4.1 2009/01/02 20:45:41 felipe Exp $ */ +/* $Id: header 272619 2009-01-02 20:45:43Z felipe $ */ diff --git a/Zend/tests/019.phpt b/Zend/tests/019.phpt index 47158771e..70093cd28 100644 --- a/Zend/tests/019.phpt +++ b/Zend/tests/019.phpt @@ -359,7 +359,8 @@ var_dump($global_var); //Note: No error conditions relating to passing arugments can be tested // because these are not functions but statements, it will result in syntax error. -echo "Done\n"; +?> +===DONE=== --EXPECTF-- *** Testing unset(), empty() & isset() with scalar variables *** -- Iteration 1 -- @@ -1185,11 +1186,11 @@ bool(true) *** Testing unset(), emtpy() & isset() with resource variables *** -- Iteration 1 -- -resource(5) of type (stream) +resource(%d) of type (stream) bool(true) bool(false) bool(true) -resource(5) of type (stream) +resource(%d) of type (stream) bool(false) bool(true) bool(false) @@ -1198,11 +1199,11 @@ bool(false) Notice: Undefined variable: resource in %s on line %d NULL -- Iteration 2 -- -resource(6) of type (stream) +resource(%d) of type (stream) bool(true) bool(false) bool(true) -resource(6) of type (stream) +resource(%d) of type (stream) bool(false) bool(true) bool(false) @@ -1217,7 +1218,7 @@ bool(false) bool(true) *** Testing unset(), empty() & isset() with objects *** -object(Point)#1 (3) { +object(Point)#%d (3) { ["x"]=> int(30) ["y"]=> @@ -1239,7 +1240,7 @@ bool(false) Notice: Undefined variable: lable in %s on line %d bool(true) -object(Point)#1 (3) { +object(Point)#%d (3) { ["x"]=> int(30) ["y"]=> @@ -1247,7 +1248,7 @@ object(Point)#1 (3) { ["lable"]=> string(6) "Point1" } -object(Point)#1 (2) { +object(Point)#%d (2) { ["y"]=> int(40) ["lable"]=> @@ -1255,7 +1256,7 @@ object(Point)#1 (2) { } bool(false) bool(true) -object(Point)#1 (0) { +object(Point)#%d (0) { } bool(true) bool(false) @@ -1276,7 +1277,7 @@ array(3) { [2]=> string(9) "testPoint" } -object(Point)#1 (3) { +object(Point)#%d (3) { ["x"]=> int(5) ["y"]=> @@ -1329,4 +1330,4 @@ bool(false) bool(false) bool(true) int(10) -Done +===DONE=== diff --git a/Zend/tests/024.phpt b/Zend/tests/024.phpt index 6fe10201f..ff35a5c89 100644 --- a/Zend/tests/024.phpt +++ b/Zend/tests/024.phpt @@ -18,17 +18,17 @@ var_dump($a->$b->$c[1]); Notice: Undefined variable: a in %s on line %d NULL -Notice: Undefined variable: c in %s on line %d +Notice: Undefined variable: %s in %s on line %d -Notice: Undefined variable: a in %s on line %d +Notice: Undefined variable: %s in %s on line %d NULL Notice: Undefined variable: a in %s on line %d int(1) -Notice: Undefined variable: b in %s on line %d +Notice: Undefined variable: %s in %s on line %d -Notice: Undefined variable: a in %s on line %d +Notice: Undefined variable: %s in %s on line %d int(0) Notice: Undefined variable: a in %s on line %d diff --git a/Zend/tests/bug30162.phpt b/Zend/tests/bug30162.phpt index ae11f8ff8..a011292a1 100755 --- a/Zend/tests/bug30162.phpt +++ b/Zend/tests/bug30162.phpt @@ -41,12 +41,14 @@ $db = new hariCow; var_dump($db); ?> +===DONE=== --EXPECTF-- Notice: Undefined variable: db in %sbug30162.php on line 35 NULL -object(hariCow)#1 (2) { +object(hariCow)#%d (2) { ["x"]=> string(1) "x" ["y"]=> string(1) "y" } +===DONE===
\ No newline at end of file diff --git a/Zend/tests/bug39542/bug39542.php b/Zend/tests/bug39542/bug39542.php index 110951766..90cb36cc6 100755 --- a/Zend/tests/bug39542/bug39542.php +++ b/Zend/tests/bug39542/bug39542.php @@ -1,7 +1,7 @@ -<?php
-class bug39542 {
- function bug39542() {
- echo "ok\n";
- }
-}
-?>
+<?php +class bug39542 { + function bug39542() { + echo "ok\n"; + } +} +?> diff --git a/Zend/tests/bug40236.inc b/Zend/tests/bug40236.inc index 0fbbfc9ff..fc03349f7 100755 --- a/Zend/tests/bug40236.inc +++ b/Zend/tests/bug40236.inc @@ -1,10 +1,10 @@ -<?php
-function func1() { }
-function func2() { }
-function func3() { }
-function func4() { }
-function func5() { }
-function func6() { }
-function func7() { }
-print ("ok\n");
+<?php +function func1() { } +function func2() { } +function func3() { } +function func4() { } +function func5() { } +function func6() { } +function func7() { } +print ("ok\n"); ?>
\ No newline at end of file diff --git a/Zend/tests/bug46106.phpt b/Zend/tests/bug46106.phpt index 9afb0ef46..f18c25a6c 100644 --- a/Zend/tests/bug46106.phpt +++ b/Zend/tests/bug46106.phpt @@ -1,22 +1,22 @@ ---TEST--
-Bug #46106 (Memory leaks when using global statement)
---FILE--
-<?php
-$foo = array(1);
-
-function foobar($errno, $errstr, $errfile, $errline) { }
-
-set_error_handler('foobar');
-
-function test($x) {
- global $foo;
-
- $x->invokeArgs(array(0));
-}
-
-$x = new ReflectionFunction('str_pad');
-test($x);
-?>
-DONE
---EXPECT--
-DONE
+--TEST-- +Bug #46106 (Memory leaks when using global statement) +--FILE-- +<?php +$foo = array(1); + +function foobar($errno, $errstr, $errfile, $errline) { } + +set_error_handler('foobar'); + +function test($x) { + global $foo; + + $x->invokeArgs(array(0)); +} + +$x = new ReflectionFunction('str_pad'); +test($x); +?> +DONE +--EXPECT-- +DONE diff --git a/Zend/tests/bug47109.phpt b/Zend/tests/bug47109.phpt index b374202be..8f810d7fb 100644 --- a/Zend/tests/bug47109.phpt +++ b/Zend/tests/bug47109.phpt @@ -1,11 +1,11 @@ ---TEST--
-Bug #47109 (Memory leak on $a->{"a"."b"} when $a is not an object)
---FILE--
-<?php
-$a->{"a"."b"};
-?>
---EXPECTF--
-Notice: Undefined variable: a in %sbug47109.php on line 2
-
-Notice: Trying to get property of non-object in %sbug47109.php on line 2
-
+--TEST-- +Bug #47109 (Memory leak on $a->{"a"."b"} when $a is not an object) +--FILE-- +<?php +$a->{"a"."b"}; +?> +--EXPECTF-- +Notice: Undefined variable: a in %sbug47109.php on line 2 + +Notice: Trying to get property of non-object in %sbug47109.php on line 2 + diff --git a/Zend/tests/bug48693.phpt b/Zend/tests/bug48693.phpt new file mode 100644 index 000000000..e57434602 --- /dev/null +++ b/Zend/tests/bug48693.phpt @@ -0,0 +1,28 @@ +--TEST-- +Bug #48693 (Double declaration of __lambda_func when lambda wrongly formatted) +--FILE-- +<?php + +$x = create_function('', 'return 1; }'); +$y = create_function('', 'function a() { }; return 2;'); +$z = create_function('', '{'); +$w = create_function('', 'return 3;'); + +var_dump( + $x, + $y(), + $z, + $w(), + $y != $z +); + +?> +--EXPECTF-- +Parse error: syntax error, unexpected '}' in %s(%d) : runtime-created function on line 1 + +Parse error: syntax error, unexpected $end in %s(%d) : runtime-created function on line 1 +bool(false) +int(2) +bool(false) +int(3) +bool(true) diff --git a/Zend/tests/bug48770.phpt b/Zend/tests/bug48770.phpt new file mode 100644 index 000000000..40fa84157 --- /dev/null +++ b/Zend/tests/bug48770.phpt @@ -0,0 +1,53 @@ +--TEST-- +Bug #48770 (call_user_func_array() fails to call parent from inheriting class) +--XFAIL-- +See Bug #48770 +--FILE-- +<?php + +class A { + public function func($str) { + var_dump(__METHOD__ .': '. $str); + } + private function func2($str) { + var_dump(__METHOD__ .': '. $str); + } + protected function func3($str) { + var_dump(__METHOD__ .': '. $str); + } + private function func22($str) { + var_dump(__METHOD__ .': '. $str); + } +} + +class B extends A { + public function func($str) { + static $avoid_crash = 0; + + if ($avoid_crash++ == 1) { + print "This method shouldn't be called when using parent::func!\n"; + return; + } + + call_user_func_array(array($this, 'parent::func'), array($str)); + } + private function func2($str) { + var_dump(__METHOD__ .': '. $str); + } + protected function func3($str) { + var_dump(__METHOD__ .': '. $str); + } +} + +class C extends B { + public function func($str) { + parent::func($str); + } +} + +$c = new C; +$c->func('This should work!'); + +?> +--EXPECTF-- +%unicode|string%(26) "A::func: This should work!" diff --git a/Zend/tests/bug48770_2.phpt b/Zend/tests/bug48770_2.phpt new file mode 100644 index 000000000..dff54e155 --- /dev/null +++ b/Zend/tests/bug48770_2.phpt @@ -0,0 +1,54 @@ +--TEST-- +Bug #48770 (call_user_func_array() fails to call parent from inheriting class) +--XFAIL-- +See Bug #48770 +--FILE-- +<?php + +class A { + public function func($str) { + var_dump(__METHOD__ .': '. $str); + } + private function func2($str) { + var_dump(__METHOD__ .': '. $str); + } + protected function func3($str) { + var_dump(__METHOD__ .': '. $str); + } + private function func22($str) { + var_dump(__METHOD__ .': '. $str); + } +} + +class B extends A { + public function func($str) { + call_user_func_array(array($this, 'parent::func2'), array($str)); + call_user_func_array(array($this, 'parent::func3'), array($str)); + call_user_func_array(array($this, 'parent::func22'), array($str)); + call_user_func_array(array($this, 'parent::inexistent'), array($str)); + } + private function func2($str) { + var_dump(__METHOD__ .': '. $str); + } + protected function func3($str) { + var_dump(__METHOD__ .': '. $str); + } +} + +class C extends B { + public function func($str) { + parent::func($str); + } +} + +$c = new C; +$c->func('This should work!'); + +?> +--EXPECTF-- +%unicode|string%(27) "A::func2: This should work!" +%unicode|string%(27) "A::func3: This should work!" + +Warning: call_user_func_array() expects parameter 1 to be a valid callback, cannot access private method A::func22() in %s on line %d + +Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'A' does not have a method 'inexistent' in %s on line %d diff --git a/Zend/tests/bug48770_3.phpt b/Zend/tests/bug48770_3.phpt new file mode 100644 index 000000000..68fe84314 --- /dev/null +++ b/Zend/tests/bug48770_3.phpt @@ -0,0 +1,51 @@ +--TEST-- +Bug #48770 (call_user_func_array() fails to call parent from inheriting class) +--XFAIL-- +See Bug #48770 +--FILE-- +<?php + +class A { + public function func($str) { + var_dump(__METHOD__ .': '. $str); + } + private function func2($str) { + var_dump(__METHOD__ .': '. $str); + } + protected function func3($str) { + var_dump(__METHOD__ .': '. $str); + } + private function func22($str) { + var_dump(__METHOD__ .': '. $str); + } +} + +class B extends A { + public function func($str) { + call_user_func_array(array($this, 'self::func2'), array($str)); + call_user_func_array(array($this, 'self::func3'), array($str)); + call_user_func_array(array($this, 'self::inexistent'), array($str)); + } + private function func2($str) { + var_dump(__METHOD__ .': '. $str); + } + protected function func3($str) { + var_dump(__METHOD__ .': '. $str); + } +} + +class C extends B { + public function func($str) { + parent::func($str); + } +} + +$c = new C; +$c->func('This should work!'); + +?> +--EXPECTF-- +%unicode|string%(27) "B::func2: This should work!" +%unicode|string%(27) "B::func3: This should work!" + +Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'B' does not have a method 'inexistent' in %s on line %d diff --git a/Zend/tests/bug48899.phpt b/Zend/tests/bug48899.phpt new file mode 100644 index 000000000..ff640543c --- /dev/null +++ b/Zend/tests/bug48899.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #48899 (is_callable returns true even if method does not exist in parent class) +--FILE-- +<?php + +class ParentClass { } + +class ChildClass extends ParentClass { + public function testIsCallable() { + var_dump(is_callable(array($this, 'parent::testIsCallable'))); + } + public function testIsCallable2() { + var_dump(is_callable(array($this, 'static::testIsCallable2'))); + } +} + +$child = new ChildClass(); +$child->testIsCallable(); +$child->testIsCallable2(); + +?> +--EXPECT-- +bool(false) +bool(true) diff --git a/Zend/tests/bug48912.phpt b/Zend/tests/bug48912.phpt new file mode 100644 index 000000000..dc021a2ef --- /dev/null +++ b/Zend/tests/bug48912.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #48912 (Namespace causes unexpected strict behaviour with extract()) +--FILE-- +<?php +namespace A; + +function test() +{ + extract(func_get_arg(0)); +} + +test(array('x' => 1)); +echo "ok\n"; +?> +--EXPECT-- +ok diff --git a/Zend/tests/bug49269.phpt b/Zend/tests/bug49269.phpt new file mode 100644 index 000000000..2de29d8b9 --- /dev/null +++ b/Zend/tests/bug49269.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #49269 (Ternary operator fails on Iterator object when used inside foreach declaration). +--FILE-- +<?php +class TestObject implements Iterator +{ + public $n = 0; + function valid() + { + return ($this->n < 3); + } + function current() {return $this->n;} + function next() {$this->n++;} + function key() { } + function rewind() {$this->n = 0;} +} + + +$array_object = new TestObject(); + +foreach ((true ? $array_object : $array_object) as $item) echo "$item\n"; +?> +--EXPECT-- +0 +1 +2 diff --git a/Zend/tests/bug49908.phpt b/Zend/tests/bug49908.phpt new file mode 100644 index 000000000..08d6383d8 --- /dev/null +++ b/Zend/tests/bug49908.phpt @@ -0,0 +1,28 @@ +--TEST-- +Bug #49908 (throwing exception in __autoload crashes when interface is not defined) +--FILE-- +<?php + +function __autoload($className) { + var_dump($className); + + if ($className == 'Foo') { + class Foo implements Bar {}; + } else { + throw new Exception($className); + } +} + +new Foo; + +?> +--EXPECTF-- +%unicode|string%(3) "Foo" +%unicode|string%(3) "Bar" + +Fatal error: Uncaught exception 'Exception' with message 'Bar' in %s:%d +Stack trace: +#0 %s(7): __autoload('Bar') +#1 %s(13): __autoload('Foo') +#2 {main} + thrown in %s on line %d diff --git a/Zend/tests/call_user_func_001.phpt b/Zend/tests/call_user_func_001.phpt new file mode 100644 index 000000000..e9b35f957 --- /dev/null +++ b/Zend/tests/call_user_func_001.phpt @@ -0,0 +1,35 @@ +--TEST-- +Testing call_user_func inside namespace +--FILE-- +<?php + +namespace testing { + function foobar($str) { + var_dump($str); + } + + abstract class bar { + protected function prot($str) { + print "Shouldn't be called!\n"; + } + } + class foo extends bar { + private function priv($str) { + print "Shouldn't be called!\n"; + } + } + + call_user_func(__NAMESPACE__ .'\foobar', 'foobar'); + + $class = __NAMESPACE__ .'\foo'; + call_user_func(array(new $class, 'priv'), 'foobar'); + call_user_func(array(new $class, 'prot'), 'foobar'); +} + +?> +--EXPECTF-- +%string|unicode%(6) "foobar" + +Warning: call_user_func() expects parameter 1 to be a valid callback, cannot access private method testing\foo::priv() in %s on line %d + +Warning: call_user_func() expects parameter 1 to be a valid callback, cannot access protected method testing\foo::prot() in %s on line %d diff --git a/Zend/tests/call_user_func_002.phpt b/Zend/tests/call_user_func_002.phpt new file mode 100644 index 000000000..e79dd1a75 --- /dev/null +++ b/Zend/tests/call_user_func_002.phpt @@ -0,0 +1,29 @@ +--TEST-- +Testing call_user_func() with autoload and passing invalid params +--FILE-- +<?php + +function __autoload($class) { + var_dump($class); +} + +call_user_func(array('foo', 'bar')); +call_user_func(array('', 'bar')); +call_user_func(array($foo, 'bar')); +call_user_func(array($foo, '')); + +?> +--EXPECTF-- +%unicode|string%(3) "foo" + +Warning: call_user_func() expects parameter 1 to be a valid callback, class 'foo' not found in %s on line %d + +Warning: call_user_func() expects parameter 1 to be a valid callback, class '' not found in %s on line %d + +Notice: Undefined variable: foo in %s on line %d + +Warning: call_user_func() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in %s on line %d + +Notice: Undefined variable: foo in %s on line %d + +Warning: call_user_func() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in %s on line %d diff --git a/Zend/tests/call_user_func_003.phpt b/Zend/tests/call_user_func_003.phpt new file mode 100644 index 000000000..d516584eb --- /dev/null +++ b/Zend/tests/call_user_func_003.phpt @@ -0,0 +1,31 @@ +--TEST-- +Testing call_user_func() with closures +--FILE-- +<?php + +$foo = function() { + static $instance; + + if (is_null($instance)) { + $instance = function () { + return 'OK!'; + }; + } + + return $instance; +}; + +var_dump(call_user_func(array($foo, '__invoke'))->__invoke()); +var_dump(call_user_func(function() use (&$foo) { return $foo; }, '__invoke')); + +?> +--EXPECTF-- +%unicode|string%(3) "OK!" +object(Closure)#%d (1) { + [%u|b%"static"]=> + array(1) { + [%u|b%"instance"]=> + object(Closure)#%d (0) { + } + } +} diff --git a/Zend/tests/closure_034.phpt b/Zend/tests/closure_034.phpt new file mode 100644 index 000000000..d1356c31d --- /dev/null +++ b/Zend/tests/closure_034.phpt @@ -0,0 +1,25 @@ +--TEST-- +Closure 033: Recursive var_dump on closures +--FILE-- +<?php + +$a = function () use(&$a) {}; +var_dump($a); + +?> +===DONE=== +--EXPECTF-- +object(Closure)#1 (1) { + ["static"]=> + array(1) { + ["a"]=> + &object(Closure)#1 (1) { + ["static"]=> + array(1) { + ["a"]=> + *RECURSION* + } + } + } +} +===DONE=== diff --git a/Zend/tests/constants_002.phpt b/Zend/tests/constants_002.phpt index 2e769f5db..5acca981f 100644 --- a/Zend/tests/constants_002.phpt +++ b/Zend/tests/constants_002.phpt @@ -16,9 +16,3 @@ Warning: Constants may only evaluate to scalar values in %s on line %d Notice: Use of undefined constant foo - assumed 'foo' in %s on line %d string(%d) "foo" resource(%d) of type (stream) ---UEXPECTF-- -Warning: Constants may only evaluate to scalar values in %s on line %d - -Notice: Use of undefined constant foo - assumed 'foo' in %s on line %d -unicode(%d) "foo" -resource(%d) of type (stream) diff --git a/Zend/tests/each_003.phpt b/Zend/tests/each_003.phpt index 8c0c32a7f..2361d6a31 100644 --- a/Zend/tests/each_003.phpt +++ b/Zend/tests/each_003.phpt @@ -22,16 +22,3 @@ array(4) { ["key"]=> int(0) } ---UEXPECTF-- -array(4) { - [1]=> - array(0) { - } - [u"value"]=> - array(0) { - } - [0]=> - int(0) - [u"key"]=> - int(0) -} diff --git a/Zend/tests/function_exists_error.phpt b/Zend/tests/function_exists_error.phpt index c95dc0718..cbc3908f1 100644 --- a/Zend/tests/function_exists_error.phpt +++ b/Zend/tests/function_exists_error.phpt @@ -1,6 +1,5 @@ --TEST-- Test function_exists() function : error conditions ---INI-- --FILE-- <?php /* diff --git a/Zend/tests/get_parent_class_001.phpt b/Zend/tests/get_parent_class_001.phpt index 5115fe16d..dfef5e08c 100644 --- a/Zend/tests/get_parent_class_001.phpt +++ b/Zend/tests/get_parent_class_001.phpt @@ -26,6 +26,3 @@ $a->foo(); --EXPECT-- string(3) "bar" bool(false) ---UEXPECT-- -unicode(3) "bar" -bool(false) diff --git a/Zend/tests/get_required_files.phpt b/Zend/tests/get_required_files.phpt new file mode 100644 index 000000000..c2ba36888 --- /dev/null +++ b/Zend/tests/get_required_files.phpt @@ -0,0 +1,16 @@ +--TEST-- +Check if get_required_files works +--CREDITS-- +Sebastian Schürmann +sschuermann@chip.de +Testfest 2009 Munich +--FILE-- +<?php +$files = get_required_files(); +var_dump($files); +?> +--EXPECTF-- +array(1) { + [0]=> + %string|unicode%(%d)%s +} diff --git a/Zend/tests/globals_001.phpt b/Zend/tests/globals_001.phpt index 0f77104ac..8efa71d31 100644 --- a/Zend/tests/globals_001.phpt +++ b/Zend/tests/globals_001.phpt @@ -1,6 +1,6 @@ --TEST-- globals in global scope ---INIT-- +--INI-- variables_order="egpcs" --FILE-- <?php diff --git a/Zend/tests/globals_002.phpt b/Zend/tests/globals_002.phpt index 8074eb1db..e5d518ac5 100644 --- a/Zend/tests/globals_002.phpt +++ b/Zend/tests/globals_002.phpt @@ -1,6 +1,6 @@ --TEST-- globals in local scope ---INIT-- +--INI-- variables_order="egpcs" --FILE-- <?php diff --git a/Zend/tests/globals_003.phpt b/Zend/tests/globals_003.phpt index 9ddae33a1..6de7c53e3 100644 --- a/Zend/tests/globals_003.phpt +++ b/Zend/tests/globals_003.phpt @@ -1,6 +1,6 @@ --TEST-- globals in local scope - 2 ---INIT-- +--INI-- variables_order="egpcs" --FILE-- <?php diff --git a/Zend/tests/globals_004.phpt b/Zend/tests/globals_004.phpt index f5da018f7..07dfc7806 100644 --- a/Zend/tests/globals_004.phpt +++ b/Zend/tests/globals_004.phpt @@ -1,6 +1,6 @@ --TEST-- globals in local scope - 3 ---INIT-- +--INI-- variables_order="egpcs" --FILE-- <?php diff --git a/Zend/tests/ns_022.inc b/Zend/tests/ns_022.inc index 749b00fb7..be571fc34 100755 --- a/Zend/tests/ns_022.inc +++ b/Zend/tests/ns_022.inc @@ -1,6 +1,6 @@ -<?php
-class Test {
- static function foo() {
- echo __CLASS__,"::",__FUNCTION__,"\n";
- }
-}
+<?php +class Test { + static function foo() { + echo __CLASS__,"::",__FUNCTION__,"\n"; + } +} diff --git a/Zend/tests/ns_023.phpt b/Zend/tests/ns_023.phpt index bc1681c12..34fbb56f2 100755 --- a/Zend/tests/ns_023.phpt +++ b/Zend/tests/ns_023.phpt @@ -7,5 +7,3 @@ namespace test\foo; var_dump(__NAMESPACE__); --EXPECT-- string(8) "test\foo" ---UEXPECT-- -unicode(8) "test\foo" diff --git a/Zend/tests/ns_024.phpt b/Zend/tests/ns_024.phpt index 6e4f8bb22..019a89c47 100755 --- a/Zend/tests/ns_024.phpt +++ b/Zend/tests/ns_024.phpt @@ -5,5 +5,3 @@ var_dump(__NAMESPACE__); --EXPECT-- string(0) "" ---UEXPECT-- -unicode(0) "" diff --git a/Zend/tests/ns_028.inc b/Zend/tests/ns_028.inc index 0bba489ce..5bd3ae776 100755 --- a/Zend/tests/ns_028.inc +++ b/Zend/tests/ns_028.inc @@ -1,15 +1,15 @@ -<?php
-namespace Foo;
-
-class Foo {
- function __construct() {
- echo "Method - ".__CLASS__."::".__FUNCTION__."\n";
- }
- static function Bar() {
- echo "Method - ".__CLASS__."::".__FUNCTION__."\n";
- }
-}
-
-function Bar() {
- echo "Func - ".__FUNCTION__."\n";
-}
+<?php +namespace Foo; + +class Foo { + function __construct() { + echo "Method - ".__CLASS__."::".__FUNCTION__."\n"; + } + static function Bar() { + echo "Method - ".__CLASS__."::".__FUNCTION__."\n"; + } +} + +function Bar() { + echo "Func - ".__FUNCTION__."\n"; +} diff --git a/Zend/tests/unexpected_ref_bug.phpt b/Zend/tests/unexpected_ref_bug.phpt new file mode 100755 index 000000000..61fe1aa5b --- /dev/null +++ b/Zend/tests/unexpected_ref_bug.phpt @@ -0,0 +1,18 @@ +--TEST-- +Crash when function parameter modified via unexpected reference +--FILE-- +<?php +function my_errorhandler($errno,$errormsg) { + global $my_var; + $my_var = 0; + return true; +} +set_error_handler("my_errorhandler"); +$my_var = str_repeat("A",64); +$data = call_user_func_array("explode",array(new StdClass(), &$my_var)); +$my_var=array(1,2,3); +$data = call_user_func_array("implode",array(&$my_var, new StdClass())); +echo "Done.\n"; +?> +--EXPECTF-- +Done. diff --git a/Zend/tests/unset_cv07.phpt b/Zend/tests/unset_cv07.phpt index fe16abf75..b7bdb7db5 100644 --- a/Zend/tests/unset_cv07.phpt +++ b/Zend/tests/unset_cv07.phpt @@ -1,7 +1,5 @@ --TEST-- unset() CV 7 (indirect unset() of global variable in import_request_variables()) ---SKIPIF-- -<?php if (php_sapi_name()=='cli') echo 'skip'; ?> --GET-- x=2 --FILE-- diff --git a/Zend/tests/zend_operators.phpt b/Zend/tests/zend_operators.phpt index 99fdf0217..00546b243 100644 --- a/Zend/tests/zend_operators.phpt +++ b/Zend/tests/zend_operators.phpt @@ -1,7 +1,7 @@ --TEST-- Operator precedence --FILE-- -<?php /* $Id: zend_operators.phpt,v 1.1 2004/03/04 10:58:49 derick Exp $ */ +<?php /* $Id: zend_operators.phpt 242949 2007-09-26 15:44:16Z cvs2svn $ */ var_dump((object)1 instanceof stdClass); var_dump(! (object)1 instanceof Exception); diff --git a/Zend/zend.c b/Zend/zend.c index a5f5a58b8..df9a86cbd 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend.c,v 1.308.2.12.2.35.2.33 2009/06/16 16:10:15 rasmus Exp $ */ +/* $Id: zend.c 290026 2009-10-28 11:08:33Z pajoye $ */ #include "zend.h" #include "zend_extensions.h" @@ -1067,9 +1067,15 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */ if (!EG(active_symbol_table)) { zend_rebuild_symbol_table(TSRMLS_C); } - Z_ARRVAL_P(z_context) = EG(active_symbol_table); - Z_TYPE_P(z_context) = IS_ARRAY; - zval_copy_ctor(z_context); + + /* during shutdown the symbol table table can be still null */ + if (!EG(active_symbol_table)) { + Z_TYPE_P(z_context) = IS_NULL; + } else { + Z_ARRVAL_P(z_context) = EG(active_symbol_table); + Z_TYPE_P(z_context) = IS_ARRAY; + zval_copy_ctor(z_context); + } params = (zval ***) emalloc(sizeof(zval **)*5); params[0] = &z_error_type; diff --git a/Zend/zend.h b/Zend/zend.h index 27af9bf7b..58f0e5984 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend.h,v 1.293.2.11.2.9.2.37 2009/06/17 08:55:23 rasmus Exp $ */ +/* $Id: zend.h 286859 2009-08-06 01:33:54Z scottmac $ */ #ifndef ZEND_H #define ZEND_H @@ -79,18 +79,7 @@ # include <dlfcn.h> #endif -#if HAVE_MACH_O_DYLD_H -#include <mach-o/dyld.h> - -/* MH_BUNDLE loading functions for Mac OS X / Darwin */ -void *zend_mh_bundle_load (char* bundle_path); -int zend_mh_bundle_unload (void *bundle_handle); -void *zend_mh_bundle_symbol(void *bundle_handle, const char *symbol_name); -const char *zend_mh_bundle_error(void); - -#endif /* HAVE_MACH_O_DYLD_H */ - -#if defined(HAVE_LIBDL) && !defined(HAVE_MACH_O_DYLD_H) && !defined(ZEND_WIN32) +#if defined(HAVE_LIBDL) && !defined(ZEND_WIN32) # ifndef RTLD_LAZY # define RTLD_LAZY 1 /* Solaris 1, FreeBSD's (2.1.7.1 and older) */ @@ -116,13 +105,6 @@ const char *zend_mh_bundle_error(void); # define DL_ERROR dlerror # define DL_HANDLE void * # define ZEND_EXTENSIONS_SUPPORT 1 -#elif defined(HAVE_MACH_O_DYLD_H) -# define DL_LOAD(libname) zend_mh_bundle_load(libname) -# define DL_UNLOAD zend_mh_bundle_unload -# define DL_FETCH_SYMBOL(h,s) zend_mh_bundle_symbol(h,s) -# define DL_ERROR zend_mh_bundle_error -# define DL_HANDLE void * -# define ZEND_EXTENSIONS_SUPPORT 1 #elif defined(ZEND_WIN32) # define DL_LOAD(libname) LoadLibrary(libname) # define DL_FETCH_SYMBOL GetProcAddress diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 578822979..6a5c5f87a 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_API.c,v 1.296.2.27.2.34.2.64 2009/06/04 18:20:42 mattwil Exp $ */ +/* $Id: zend_API.c 289431 2009-10-09 17:21:20Z pajoye $ */ #include "zend.h" #include "zend_execute.h" @@ -1038,13 +1038,13 @@ ZEND_API void zend_update_class_constants(zend_class_entry *class_type TSRMLS_DC Z_SET_ISREF_PP(q); zend_hash_add(CE_STATIC_MEMBERS(class_type), str_index, str_length, (void**)q, sizeof(zval*), NULL); } else { - zval *q; + zval *r; - ALLOC_ZVAL(q); - *q = **p; - INIT_PZVAL(q); - zval_copy_ctor(q); - zend_hash_add(CE_STATIC_MEMBERS(class_type), str_index, str_length, (void**)&q, sizeof(zval*), NULL); + ALLOC_ZVAL(r); + *r = **p; + INIT_PZVAL(r); + zval_copy_ctor(r); + zend_hash_add(CE_STATIC_MEMBERS(class_type), str_index, str_length, (void**)&r, sizeof(zval*), NULL); } zend_hash_move_forward_ex(&class_type->default_static_members, &pos); } @@ -2114,7 +2114,7 @@ void module_destructor(zend_module_entry *module) /* {{{ */ zend_unregister_functions(module->functions, -1, NULL TSRMLS_CC); } -#if HAVE_LIBDL || defined(HAVE_MACH_O_DYLD_H) +#if HAVE_LIBDL #if !(defined(NETWARE) && defined(APACHE_1_BUILD)) if (module->handle) { DL_UNLOAD(module->handle); @@ -2519,7 +2519,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca } } else { get_function_via_handler: - if (fcc->object_ptr) { + if (fcc->object_ptr && fcc->calling_scope == ce_org) { if (Z_OBJ_HT_P(fcc->object_ptr)->get_method) { fcc->function_handler = Z_OBJ_HT_P(fcc->object_ptr)->get_method(&fcc->object_ptr, mname, mlen TSRMLS_CC); if (fcc->function_handler) { diff --git a/Zend/zend_API.h b/Zend/zend_API.h index c286f2d8c..032f83017 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_API.h,v 1.207.2.8.2.8.2.24 2008/12/31 11:15:31 sebastian Exp $ */ +/* $Id: zend_API.h 286469 2009-07-28 21:12:42Z jani $ */ #ifndef ZEND_API_H #define ZEND_API_H @@ -90,7 +90,7 @@ typedef struct _zend_fcall_info_cache { #define ZEND_NS_RAW_FENTRY(ns, zend_name, name, arg_info, flags) ZEND_RAW_FENTRY(ZEND_NS_NAME(ns, zend_name), name, arg_info, flags) #define ZEND_NS_RAW_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_RAW_FENTRY(ns, #zend_name, name, arg_info, 0) -#define ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info) +#define ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_FENTRY(ns, #zend_name, name, arg_info, 0) #define ZEND_NS_FE(ns, name, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, 0) #define ZEND_NS_DEP_FE(ns, name, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED) #define ZEND_NS_FALIAS(ns, name, alias, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(alias), arg_info, 0) diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index 9eafda448..683ccf960 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_alloc.c,v 1.144.2.3.2.43.2.24 2009/05/30 16:42:13 lbarnaud Exp $ */ +/* $Id: zend_alloc.c 287992 2009-09-03 14:33:11Z dmitry $ */ #include "zend.h" #include "zend_alloc.h" @@ -512,20 +512,7 @@ static unsigned int _zend_mm_cookie = 0; /* optimized access */ #define ZEND_MM_FREE_BLOCK_SIZE(b) (b)->info._size -#ifndef ZEND_MM_ALIGNMENT -# define ZEND_MM_ALIGNMENT 8 -# define ZEND_MM_ALIGNMENT_LOG2 3 -#elif ZEND_MM_ALIGNMENT < 4 -# undef ZEND_MM_ALIGNMENT -# undef ZEND_MM_ALIGNMENT_LOG2 -# define ZEND_MM_ALIGNMENT 4 -# define ZEND_MM_ALIGNMENT_LOG2 2 -#endif - -#define ZEND_MM_ALIGNMENT_MASK ~(ZEND_MM_ALIGNMENT-1) - /* Aligned header size */ -#define ZEND_MM_ALIGNED_SIZE(size) ((size + ZEND_MM_ALIGNMENT - 1) & ZEND_MM_ALIGNMENT_MASK) #define ZEND_MM_ALIGNED_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_block)) #define ZEND_MM_ALIGNED_FREE_HEADER_SIZE ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_small_free_block)) #define ZEND_MM_MIN_ALLOC_BLOCK_SIZE ZEND_MM_ALIGNED_SIZE(ZEND_MM_ALIGNED_HEADER_SIZE + END_MAGIC_SIZE) @@ -709,12 +696,14 @@ static inline unsigned int zend_mm_low_bit(size_t _size) unsigned int n; unsigned int index = 0; - do { - n = offset[_size & 15]; + n = offset[_size & 15]; + while (n == 4) { _size >>= 4; index += n; - } while (n == 4); - return index; + n = offset[_size & 15]; + } + + return index + n; #endif } diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h index daa37c7d0..b1ecab948 100644 --- a/Zend/zend_alloc.h +++ b/Zend/zend_alloc.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_alloc.h,v 1.63.2.2.2.12.2.10 2009/06/28 09:48:48 pajoye Exp $ */ +/* $Id: zend_alloc.h 287992 2009-09-03 14:33:11Z dmitry $ */ #ifndef ZEND_ALLOC_H #define ZEND_ALLOC_H @@ -27,6 +27,20 @@ #include "../TSRM/TSRM.h" #include "zend.h" +#ifndef ZEND_MM_ALIGNMENT +# define ZEND_MM_ALIGNMENT 8 +# define ZEND_MM_ALIGNMENT_LOG2 3 +#elif ZEND_MM_ALIGNMENT < 4 +# undef ZEND_MM_ALIGNMENT +# undef ZEND_MM_ALIGNMENT_LOG2 +# define ZEND_MM_ALIGNMENT 4 +# define ZEND_MM_ALIGNMENT_LOG2 2 +#endif + +#define ZEND_MM_ALIGNMENT_MASK ~(ZEND_MM_ALIGNMENT-1) + +#define ZEND_MM_ALIGNED_SIZE(size) (((size) + ZEND_MM_ALIGNMENT - 1) & ZEND_MM_ALIGNMENT_MASK) + typedef struct _zend_leak_info { void *addr; size_t size; diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index e965c5dee..ec29a4934 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_builtin_functions.c,v 1.277.2.12.2.25.2.52 2009/06/08 21:27:05 pajoye Exp $ */ +/* $Id: zend_builtin_functions.c 286878 2009-08-06 11:02:25Z jani $ */ #include "zend.h" #include "zend_API.h" @@ -747,7 +747,7 @@ ZEND_FUNCTION(get_class) zend_uint name_len = 0; int dup; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|o", &obj) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|o!", &obj) == FAILURE) { RETURN_FALSE; } @@ -1755,6 +1755,7 @@ ZEND_FUNCTION(create_function) zend_hash_del(EG(function_table), LAMBDA_TEMP_FUNCNAME, sizeof(LAMBDA_TEMP_FUNCNAME)); RETURN_STRINGL(function_name, function_name_length, 0); } else { + zend_hash_del(EG(function_table), LAMBDA_TEMP_FUNCNAME, sizeof(LAMBDA_TEMP_FUNCNAME)); RETURN_FALSE; } } diff --git a/Zend/zend_builtin_functions.h b/Zend/zend_builtin_functions.h index 68175b323..aca6d77e8 100644 --- a/Zend/zend_builtin_functions.h +++ b/Zend/zend_builtin_functions.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_builtin_functions.h,v 1.17.2.2.2.1.2.2 2008/12/31 11:15:31 sebastian Exp $ */ +/* $Id: zend_builtin_functions.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_BUILTIN_FUNCTIONS_H #define ZEND_BUILTIN_FUNCTIONS_H diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c index a28f8ccfd..96fc56748 100644 --- a/Zend/zend_closures.c +++ b/Zend/zend_closures.c @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_closures.c,v 1.3.2.26 2009/01/26 22:54:18 cseiler Exp $ */ +/* $Id: zend_closures.c 287043 2009-08-10 15:18:13Z colder $ */ #include "zend.h" #include "zend_API.h" @@ -37,6 +37,7 @@ typedef struct _zend_closure { zend_object std; zend_function func; + HashTable *debug_info; } zend_closure; /* non-static since it needs to be referenced */ @@ -179,6 +180,11 @@ static void zend_closure_free_storage(void *object TSRMLS_DC) /* {{{ */ destroy_op_array(&closure->func.op_array TSRMLS_CC); } + if (closure->debug_info != NULL) { + zend_hash_destroy(closure->debug_info); + efree(closure->debug_info); + } + efree(closure); } /* }}} */ @@ -222,48 +228,53 @@ int zend_closure_get_closure(zval *obj, zend_class_entry **ce_ptr, zend_function static HashTable *zend_closure_get_debug_info(zval *object, int *is_temp TSRMLS_DC) /* {{{ */ { zend_closure *closure = (zend_closure *)zend_object_store_get_object(object TSRMLS_CC); - HashTable *rv; zval *val; struct _zend_arg_info *arg_info = closure->func.common.arg_info; - *is_temp = 1; - ALLOC_HASHTABLE(rv); - zend_hash_init(rv, 1, NULL, ZVAL_PTR_DTOR, 0); - if (closure->func.type == ZEND_USER_FUNCTION && closure->func.op_array.static_variables) { - HashTable *static_variables = closure->func.op_array.static_variables; - MAKE_STD_ZVAL(val); - array_init(val); - zend_hash_copy(Z_ARRVAL_P(val), static_variables, (copy_ctor_func_t)zval_add_ref, NULL, sizeof(zval*)); - zend_symtable_update(rv, "static", sizeof("static"), (void *) &val, sizeof(zval *), NULL); - } + *is_temp = 0; - if (arg_info) { - zend_uint i, required = closure->func.common.required_num_args; - - MAKE_STD_ZVAL(val); - array_init(val); + if (closure->debug_info == NULL) { + ALLOC_HASHTABLE(closure->debug_info); + zend_hash_init(closure->debug_info, 1, NULL, ZVAL_PTR_DTOR, 0); + } + if (closure->debug_info->nApplyCount == 0) { + if (closure->func.type == ZEND_USER_FUNCTION && closure->func.op_array.static_variables) { + HashTable *static_variables = closure->func.op_array.static_variables; + MAKE_STD_ZVAL(val); + array_init(val); + zend_hash_copy(Z_ARRVAL_P(val), static_variables, (copy_ctor_func_t)zval_add_ref, NULL, sizeof(zval*)); + zend_symtable_update(closure->debug_info, "static", sizeof("static"), (void *) &val, sizeof(zval *), NULL); + } - for (i = 0; i < closure->func.common.num_args; i++) { - char *name, *info; - int name_len, info_len; - if (arg_info->name) { - name_len = zend_spprintf(&name, 0, "%s$%s", - arg_info->pass_by_reference ? "&" : "", - arg_info->name); - } else { - name_len = zend_spprintf(&name, 0, "%s$param%d", - arg_info->pass_by_reference ? "&" : "", - i + 1); + if (arg_info) { + zend_uint i, required = closure->func.common.required_num_args; + + MAKE_STD_ZVAL(val); + array_init(val); + + for (i = 0; i < closure->func.common.num_args; i++) { + char *name, *info; + int name_len, info_len; + if (arg_info->name) { + name_len = zend_spprintf(&name, 0, "%s$%s", + arg_info->pass_by_reference ? "&" : "", + arg_info->name); + } else { + name_len = zend_spprintf(&name, 0, "%s$param%d", + arg_info->pass_by_reference ? "&" : "", + i + 1); + } + info_len = zend_spprintf(&info, 0, "%s", + i >= required ? "<optional>" : "<required>"); + add_assoc_stringl_ex(val, name, name_len + 1, info, info_len, 0); + efree(name); + arg_info++; } - info_len = zend_spprintf(&info, 0, "%s", - i >= required ? "<optional>" : "<required>"); - add_assoc_stringl_ex(val, name, name_len + 1, info, info_len, 0); - efree(name); - arg_info++; + zend_symtable_update(closure->debug_info, "parameter", sizeof("parameter"), (void *) &val, sizeof(zval *), NULL); } - zend_symtable_update(rv, "parameter", sizeof("parameter"), (void *) &val, sizeof(zval *), NULL); } - return rv; + + return closure->debug_info; } /* }}} */ diff --git a/Zend/zend_closures.h b/Zend/zend_closures.h index 79d28f087..64c476b48 100644 --- a/Zend/zend_closures.h +++ b/Zend/zend_closures.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_closures.h,v 1.1.2.8 2009/01/26 22:54:19 cseiler Exp $ */ +/* $Id: zend_closures.h 274683 2009-01-26 22:54:34Z cseiler $ */ #ifndef ZEND_CLOSURES_H #define ZEND_CLOSURES_H diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 06608abd0..a02278f27 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.c,v 1.647.2.27.2.41.2.109 2009/06/07 15:46:51 mattwil Exp $ */ +/* $Id: zend_compile.c 289432 2009-10-09 17:23:01Z pajoye $ */ #include <zend_language_parser.h> #include "zend.h" @@ -40,36 +40,40 @@ ZEND_API zend_compiler_globals compiler_globals; ZEND_API zend_executor_globals executor_globals; #endif -static void zend_duplicate_property_info(zend_property_info *property_info) +static void zend_duplicate_property_info(zend_property_info *property_info) /* {{{ */ { property_info->name = estrndup(property_info->name, property_info->name_length); if (property_info->doc_comment) { property_info->doc_comment = estrndup(property_info->doc_comment, property_info->doc_comment_len); } } +/* }}} */ -static void zend_duplicate_property_info_internal(zend_property_info *property_info) +static void zend_duplicate_property_info_internal(zend_property_info *property_info) /* {{{ */ { property_info->name = zend_strndup(property_info->name, property_info->name_length); } +/* }}} */ -static void zend_destroy_property_info(zend_property_info *property_info) +static void zend_destroy_property_info(zend_property_info *property_info) /* {{{ */ { efree(property_info->name); if (property_info->doc_comment) { efree(property_info->doc_comment); } } +/* }}} */ -static void zend_destroy_property_info_internal(zend_property_info *property_info) +static void zend_destroy_property_info_internal(zend_property_info *property_info) /* {{{ */ { free(property_info->name); } +/* }}} */ -static void build_runtime_defined_function_key(zval *result, const char *name, int name_length TSRMLS_DC) +static void build_runtime_defined_function_key(zval *result, const char *name, int name_length TSRMLS_DC) /* {{{ */ { char char_pos_buf[32]; uint char_pos_len; @@ -95,16 +99,18 @@ static void build_runtime_defined_function_key(zval *result, const char *name, i result->type = IS_STRING; Z_SET_REFCOUNT_P(result, 1); } +/* }}} */ -int zend_auto_global_arm(zend_auto_global *auto_global TSRMLS_DC) +int zend_auto_global_arm(zend_auto_global *auto_global TSRMLS_DC) /* {{{ */ { auto_global->armed = (auto_global->auto_global_callback ? 1 : 0); return 0; } +/* }}} */ -ZEND_API int zend_auto_global_disable_jit(const char *varname, zend_uint varname_length TSRMLS_DC) +ZEND_API int zend_auto_global_disable_jit(const char *varname, zend_uint varname_length TSRMLS_DC) /* {{{ */ { zend_auto_global *auto_global; @@ -114,16 +120,18 @@ ZEND_API int zend_auto_global_disable_jit(const char *varname, zend_uint varname auto_global->armed = 0; return SUCCESS; } +/* }}} */ -static void init_compiler_declarables(TSRMLS_D) +static void init_compiler_declarables(TSRMLS_D) /* {{{ */ { Z_TYPE(CG(declarables).ticks) = IS_LONG; Z_LVAL(CG(declarables).ticks) = 0; } +/* }}} */ -void zend_init_compiler_data_structures(TSRMLS_D) +void zend_init_compiler_data_structures(TSRMLS_D) /* {{{ */ { zend_stack_init(&CG(bp_stack)); zend_stack_init(&CG(function_call_stack)); @@ -155,17 +163,19 @@ void zend_init_compiler_data_structures(TSRMLS_D) CG(encoding_oddlen) = NULL; #endif /* ZEND_MULTIBYTE */ } +/* }}} */ -ZEND_API void file_handle_dtor(zend_file_handle *fh) +ZEND_API void file_handle_dtor(zend_file_handle *fh) /* {{{ */ { TSRMLS_FETCH(); zend_file_handle_dtor(fh TSRMLS_CC); } +/* }}} */ -void init_compiler(TSRMLS_D) +void init_compiler(TSRMLS_D) /* {{{ */ { CG(active_op_array) = NULL; zend_init_compiler_data_structures(TSRMLS_C); @@ -174,9 +184,10 @@ void init_compiler(TSRMLS_D) zend_llist_init(&CG(open_files), sizeof(zend_file_handle), (void (*)(void *)) file_handle_dtor, 0); CG(unclean_shutdown) = 0; } +/* }}} */ -void shutdown_compiler(TSRMLS_D) +void shutdown_compiler(TSRMLS_D) /* {{{ */ { zend_stack_destroy(&CG(bp_stack)); zend_stack_destroy(&CG(function_call_stack)); @@ -195,9 +206,10 @@ void shutdown_compiler(TSRMLS_D) } #endif /* ZEND_MULTIBYTE */ } +/* }}} */ -ZEND_API char *zend_set_compiled_filename(const char *new_compiled_filename TSRMLS_DC) +ZEND_API char *zend_set_compiled_filename(const char *new_compiled_filename TSRMLS_DC) /* {{{ */ { char **pp, *p; int length = strlen(new_compiled_filename); @@ -211,38 +223,44 @@ ZEND_API char *zend_set_compiled_filename(const char *new_compiled_filename TSRM CG(compiled_filename) = p; return p; } +/* }}} */ -ZEND_API void zend_restore_compiled_filename(char *original_compiled_filename TSRMLS_DC) +ZEND_API void zend_restore_compiled_filename(char *original_compiled_filename TSRMLS_DC) /* {{{ */ { CG(compiled_filename) = original_compiled_filename; } +/* }}} */ -ZEND_API char *zend_get_compiled_filename(TSRMLS_D) +ZEND_API char *zend_get_compiled_filename(TSRMLS_D) /* {{{ */ { return CG(compiled_filename); } +/* }}} */ -ZEND_API int zend_get_compiled_lineno(TSRMLS_D) +ZEND_API int zend_get_compiled_lineno(TSRMLS_D) /* {{{ */ { return CG(zend_lineno); } +/* }}} */ -ZEND_API zend_bool zend_is_compiling(TSRMLS_D) +ZEND_API zend_bool zend_is_compiling(TSRMLS_D) /* {{{ */ { return CG(in_compilation); } +/* }}} */ -static zend_uint get_temporary_variable(zend_op_array *op_array) +static zend_uint get_temporary_variable(zend_op_array *op_array) /* {{{ */ { - return (op_array->T)++ * sizeof(temp_variable); + return (op_array->T)++ * ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)); } +/* }}} */ -static int lookup_cv(zend_op_array *op_array, char* name, int name_len) +static int lookup_cv(zend_op_array *op_array, char* name, int name_len) /* {{{ */ { int i = 0; ulong hash_value = zend_inline_hash_func(name, name_len+1); @@ -267,9 +285,10 @@ static int lookup_cv(zend_op_array *op_array, char* name, int name_len) op_array->vars[i].hash_value = hash_value; return i; } +/* }}} */ -void zend_do_binary_op(zend_uchar op, znode *result, const znode *op1, const znode *op2 TSRMLS_DC) +void zend_do_binary_op(zend_uchar op, znode *result, const znode *op1, const znode *op2 TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -280,9 +299,9 @@ void zend_do_binary_op(zend_uchar op, znode *result, const znode *op1, const zno opline->op2 = *op2; *result = opline->result; } +/* }}} */ - -void zend_do_unary_op(zend_uchar op, znode *result, const znode *op1 TSRMLS_DC) +void zend_do_unary_op(zend_uchar op, znode *result, const znode *op1 TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -293,18 +312,20 @@ void zend_do_unary_op(zend_uchar op, znode *result, const znode *op1 TSRMLS_DC) *result = opline->result; SET_UNUSED(opline->op2); } +/* }}} */ #define MAKE_NOP(opline) { opline->opcode = ZEND_NOP; memset(&opline->result,0,sizeof(znode)); memset(&opline->op1,0,sizeof(znode)); memset(&opline->op2,0,sizeof(znode)); opline->result.op_type=opline->op1.op_type=opline->op2.op_type=IS_UNUSED; } -static void zend_do_op_data(zend_op *data_op, const znode *value TSRMLS_DC) +static void zend_do_op_data(zend_op *data_op, const znode *value TSRMLS_DC) /* {{{ */ { data_op->opcode = ZEND_OP_DATA; data_op->op1 = *value; SET_UNUSED(data_op->op2); } +/* }}} */ -void zend_do_binary_assign_op(zend_uchar op, znode *result, const znode *op1, const znode *op2 TSRMLS_DC) +void zend_do_binary_assign_op(zend_uchar op, znode *result, const znode *op1, const znode *op2 TSRMLS_DC) /* {{{ */ { int last_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -345,8 +366,9 @@ void zend_do_binary_assign_op(zend_uchar op, znode *result, const znode *op1, co opline->result.u.var = get_temporary_variable(CG(active_op_array)); *result = opline->result; } +/* }}} */ -void fetch_simple_variable_ex(znode *result, znode *varname, int bp, zend_uchar op TSRMLS_DC) +void fetch_simple_variable_ex(znode *result, znode *varname, int bp, zend_uchar op TSRMLS_DC) /* {{{ */ { zend_op opline; zend_op *opline_ptr; @@ -395,14 +417,16 @@ void fetch_simple_variable_ex(znode *result, znode *varname, int bp, zend_uchar zend_llist_add_element(fetch_list_ptr, opline_ptr); } } +/* }}} */ -void fetch_simple_variable(znode *result, znode *varname, int bp TSRMLS_DC) +void fetch_simple_variable(znode *result, znode *varname, int bp TSRMLS_DC) /* {{{ */ { /* the default mode must be Write, since fetch_simple_variable() is used to define function arguments */ fetch_simple_variable_ex(result, varname, bp, ZEND_FETCH_W TSRMLS_CC); } +/* }}} */ -void zend_do_fetch_static_member(znode *result, znode *class_name TSRMLS_DC) +void zend_do_fetch_static_member(znode *result, znode *class_name TSRMLS_DC) /* {{{ */ { znode class_node; zend_llist *fetch_list_ptr; @@ -455,16 +479,17 @@ void zend_do_fetch_static_member(znode *result, znode *class_name TSRMLS_DC) } } } +/* }}} */ -void fetch_array_begin(znode *result, znode *varname, znode *first_dim TSRMLS_DC) +void fetch_array_begin(znode *result, znode *varname, znode *first_dim TSRMLS_DC) /* {{{ */ { fetch_simple_variable(result, varname, 1 TSRMLS_CC); fetch_array_dim(result, result, first_dim TSRMLS_CC); } +/* }}} */ - -void fetch_array_dim(znode *result, const znode *parent, const znode *dim TSRMLS_DC) +void fetch_array_dim(znode *result, const znode *parent, const znode *dim TSRMLS_DC) /* {{{ */ { zend_op opline; zend_llist *fetch_list_ptr; @@ -482,18 +507,15 @@ void fetch_array_dim(znode *result, const znode *parent, const znode *dim TSRMLS zend_stack_top(&CG(bp_stack), (void **) &fetch_list_ptr); zend_llist_add_element(fetch_list_ptr, &opline); } +/* }}} */ - -void fetch_string_offset(znode *result, const znode *parent, const znode *offset TSRMLS_DC) +void fetch_string_offset(znode *result, const znode *parent, const znode *offset TSRMLS_DC) /* {{{ */ { -#ifdef ilia_0 - zend_error(E_DEPRECATED, "Usage of {} to access string offsets is deprecated and will be removed in PHP 6"); -#endif fetch_array_dim(result, parent, offset TSRMLS_CC); } +/* }}} */ - -void zend_do_print(znode *result, const znode *arg TSRMLS_DC) +void zend_do_print(znode *result, const znode *arg TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -504,9 +526,9 @@ void zend_do_print(znode *result, const znode *arg TSRMLS_DC) SET_UNUSED(opline->op2); *result = opline->result; } +/* }}} */ - -void zend_do_echo(const znode *arg TSRMLS_DC) +void zend_do_echo(const znode *arg TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -514,8 +536,9 @@ void zend_do_echo(const znode *arg TSRMLS_DC) opline->op1 = *arg; SET_UNUSED(opline->op2); } +/* }}} */ -void zend_do_abstract_method(const znode *function_name, znode *modifiers, const znode *body TSRMLS_DC) +void zend_do_abstract_method(const znode *function_name, znode *modifiers, const znode *body TSRMLS_DC) /* {{{ */ { char *method_type; @@ -546,8 +569,9 @@ void zend_do_abstract_method(const znode *function_name, znode *modifiers, const } } } +/* }}} */ -static zend_bool opline_is_fetch_this(const zend_op *opline TSRMLS_DC) +static zend_bool opline_is_fetch_this(const zend_op *opline TSRMLS_DC) /* {{{ */ { if ((opline->opcode == ZEND_FETCH_W) && (opline->op1.op_type == IS_CONST) && (opline->op1.u.constant.type == IS_STRING) @@ -558,8 +582,9 @@ static zend_bool opline_is_fetch_this(const zend_op *opline TSRMLS_DC) return 0; } } +/* }}} */ -void zend_do_assign(znode *result, znode *variable, const znode *value TSRMLS_DC) +void zend_do_assign(znode *result, znode *variable, const znode *value TSRMLS_DC) /* {{{ */ { int last_op_number; zend_op *opline; @@ -662,15 +687,17 @@ void zend_do_assign(znode *result, znode *variable, const znode *value TSRMLS_DC opline->result.u.var = get_temporary_variable(CG(active_op_array)); *result = opline->result; } +/* }}} */ -static inline zend_bool zend_is_function_or_method_call(const znode *variable) +static inline zend_bool zend_is_function_or_method_call(const znode *variable) /* {{{ */ { zend_uint type = variable->u.EA.type; return ((type & ZEND_PARSED_METHOD_CALL) || (type == ZEND_PARSED_FUNCTION_CALL)); } +/* }}} */ -void zend_do_assign_ref(znode *result, const znode *lvar, const znode *rvar TSRMLS_DC) +void zend_do_assign_ref(znode *result, const znode *lvar, const znode *rvar TSRMLS_DC) /* {{{ */ { zend_op *opline; @@ -710,9 +737,9 @@ void zend_do_assign_ref(znode *result, const znode *lvar, const znode *rvar TSRM opline->op1 = *lvar; opline->op2 = *rvar; } +/* }}} */ - -static inline void do_begin_loop(TSRMLS_D) +static inline void do_begin_loop(TSRMLS_D) /* {{{ */ { zend_brk_cont_element *brk_cont_element; int parent; @@ -723,9 +750,9 @@ static inline void do_begin_loop(TSRMLS_D) brk_cont_element->start = get_next_op_number(CG(active_op_array)); brk_cont_element->parent = parent; } +/* }}} */ - -static inline void do_end_loop(int cont_addr, int has_loop_var TSRMLS_DC) +static inline void do_end_loop(int cont_addr, int has_loop_var TSRMLS_DC) /* {{{ */ { if (!has_loop_var) { /* The start fileld is used to free temporary variables in case of exceptions. @@ -737,9 +764,9 @@ static inline void do_end_loop(int cont_addr, int has_loop_var TSRMLS_DC) CG(active_op_array)->brk_cont_array[CG(active_op_array)->current_brk_cont].brk = get_next_op_number(CG(active_op_array)); CG(active_op_array)->current_brk_cont = CG(active_op_array)->brk_cont_array[CG(active_op_array)->current_brk_cont].parent; } +/* }}} */ - -void zend_do_while_cond(const znode *expr, znode *close_bracket_token TSRMLS_DC) +void zend_do_while_cond(const znode *expr, znode *close_bracket_token TSRMLS_DC) /* {{{ */ { int while_cond_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -752,9 +779,9 @@ void zend_do_while_cond(const znode *expr, znode *close_bracket_token TSRMLS_DC) do_begin_loop(TSRMLS_C); INC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_while_end(const znode *while_token, const znode *close_bracket_token TSRMLS_DC) +void zend_do_while_end(const znode *while_token, const znode *close_bracket_token TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -771,9 +798,9 @@ void zend_do_while_end(const znode *while_token, const znode *close_bracket_toke DEC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_for_cond(const znode *expr, znode *second_semicolon_token TSRMLS_DC) +void zend_do_for_cond(const znode *expr, znode *second_semicolon_token TSRMLS_DC) /* {{{ */ { int for_cond_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -783,9 +810,9 @@ void zend_do_for_cond(const znode *expr, znode *second_semicolon_token TSRMLS_DC second_semicolon_token->u.opline_num = for_cond_op_number; SET_UNUSED(opline->op2); } +/* }}} */ - -void zend_do_for_before_statement(const znode *cond_start, const znode *second_semicolon_token TSRMLS_DC) +void zend_do_for_before_statement(const znode *cond_start, const znode *second_semicolon_token TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -799,9 +826,9 @@ void zend_do_for_before_statement(const znode *cond_start, const znode *second_s INC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_for_end(const znode *second_semicolon_token TSRMLS_DC) +void zend_do_for_end(const znode *second_semicolon_token TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -815,9 +842,9 @@ void zend_do_for_end(const znode *second_semicolon_token TSRMLS_DC) DEC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_pre_incdec(znode *result, const znode *op1, zend_uchar op TSRMLS_DC) +void zend_do_pre_incdec(znode *result, const znode *op1, zend_uchar op TSRMLS_DC) /* {{{ */ { int last_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline; @@ -844,9 +871,9 @@ void zend_do_pre_incdec(znode *result, const znode *op1, zend_uchar op TSRMLS_DC opline->result.u.var = get_temporary_variable(CG(active_op_array)); *result = opline->result; } +/* }}} */ - -void zend_do_post_incdec(znode *result, const znode *op1, zend_uchar op TSRMLS_DC) +void zend_do_post_incdec(znode *result, const znode *op1, zend_uchar op TSRMLS_DC) /* {{{ */ { int last_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline; @@ -871,9 +898,9 @@ void zend_do_post_incdec(znode *result, const znode *op1, zend_uchar op TSRMLS_D opline->result.u.var = get_temporary_variable(CG(active_op_array)); *result = opline->result; } +/* }}} */ - -void zend_do_if_cond(const znode *cond, znode *closing_bracket_token TSRMLS_DC) +void zend_do_if_cond(const znode *cond, znode *closing_bracket_token TSRMLS_DC) /* {{{ */ { int if_cond_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -884,9 +911,9 @@ void zend_do_if_cond(const znode *cond, znode *closing_bracket_token TSRMLS_DC) SET_UNUSED(opline->op2); INC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_if_after_statement(const znode *closing_bracket_token, unsigned char initialize TSRMLS_DC) +void zend_do_if_after_statement(const znode *closing_bracket_token, unsigned char initialize TSRMLS_DC) /* {{{ */ { int if_end_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -907,9 +934,9 @@ void zend_do_if_after_statement(const znode *closing_bracket_token, unsigned cha SET_UNUSED(opline->op1); SET_UNUSED(opline->op2); } +/* }}} */ - -void zend_do_if_end(TSRMLS_D) +void zend_do_if_end(TSRMLS_D) /* {{{ */ { int next_op_number = get_next_op_number(CG(active_op_array)); zend_llist *jmp_list_ptr; @@ -923,8 +950,9 @@ void zend_do_if_end(TSRMLS_D) zend_stack_del_top(&CG(bp_stack)); DEC_BPC(CG(active_op_array)); } +/* }}} */ -void zend_check_writable_variable(const znode *variable) +void zend_check_writable_variable(const znode *variable) /* {{{ */ { zend_uint type = variable->u.EA.type; @@ -935,17 +963,18 @@ void zend_check_writable_variable(const znode *variable) zend_error(E_COMPILE_ERROR, "Can't use function return value in write context"); } } +/* }}} */ -void zend_do_begin_variable_parse(TSRMLS_D) +void zend_do_begin_variable_parse(TSRMLS_D) /* {{{ */ { zend_llist fetch_list; zend_llist_init(&fetch_list, sizeof(zend_op), NULL, 0); zend_stack_push(&CG(bp_stack), (void *) &fetch_list, sizeof(zend_llist)); } +/* }}} */ - -void zend_do_end_variable_parse(znode *variable, int type, int arg_offset TSRMLS_DC) +void zend_do_end_variable_parse(znode *variable, int type, int arg_offset TSRMLS_DC) /* {{{ */ { zend_llist *fetch_list_ptr; zend_llist_element *le; @@ -1030,9 +1059,9 @@ void zend_do_end_variable_parse(znode *variable, int type, int arg_offset TSRMLS zend_llist_destroy(fetch_list_ptr); zend_stack_del_top(&CG(bp_stack)); } +/* }}} */ - -void zend_do_add_string(znode *result, const znode *op1, znode *op2 TSRMLS_DC) +void zend_do_add_string(znode *result, const znode *op1, znode *op2 TSRMLS_DC) /* {{{ */ { zend_op *opline; @@ -1063,9 +1092,9 @@ void zend_do_add_string(znode *result, const znode *op1, znode *op2 TSRMLS_DC) opline->op2 = *op2; *result = opline->result; } +/* }}} */ - -void zend_do_add_variable(znode *result, const znode *op1, const znode *op2 TSRMLS_DC) +void zend_do_add_variable(znode *result, const znode *op1, const znode *op2 TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -1082,8 +1111,9 @@ void zend_do_add_variable(znode *result, const znode *op1, const znode *op2 TSRM opline->op2 = *op2; *result = opline->result; } +/* }}} */ -void zend_do_free(znode *op1 TSRMLS_DC) +void zend_do_free(znode *op1 TSRMLS_DC) /* {{{ */ { if (op1->op_type==IS_TMP_VAR) { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -1124,9 +1154,9 @@ void zend_do_free(znode *op1 TSRMLS_DC) zval_dtor(&op1->u.constant); } } +/* }}} */ - -int zend_do_verify_access_types(const znode *current_access_type, const znode *new_modifier) +int zend_do_verify_access_types(const znode *current_access_type, const znode *new_modifier) /* {{{ */ { if ((Z_LVAL(current_access_type->u.constant) & ZEND_ACC_PPP_MASK) && (Z_LVAL(new_modifier->u.constant) & ZEND_ACC_PPP_MASK)) { @@ -1149,9 +1179,9 @@ int zend_do_verify_access_types(const znode *current_access_type, const znode *n } return (Z_LVAL(current_access_type->u.constant) | Z_LVAL(new_modifier->u.constant)); } +/* }}} */ - -void zend_do_begin_function_declaration(znode *function_token, znode *function_name, int is_method, int return_reference, znode *fn_flags_znode TSRMLS_DC) +void zend_do_begin_function_declaration(znode *function_token, znode *function_name, int is_method, int return_reference, znode *fn_flags_znode TSRMLS_DC) /* {{{ */ { zend_op_array op_array; char *name = function_name->u.constant.value.str.val; @@ -1379,8 +1409,9 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n zend_stack_push(&CG(labels_stack), (void *) &CG(labels), sizeof(HashTable*)); CG(labels) = NULL; } +/* }}} */ -void zend_do_begin_lambda_function_declaration(znode *result, znode *function_token, int return_reference TSRMLS_DC) +void zend_do_begin_lambda_function_declaration(znode *result, znode *function_token, int return_reference TSRMLS_DC) /* {{{ */ { znode function_name; zend_op_array *current_op_array = CG(active_op_array); @@ -1402,9 +1433,9 @@ void zend_do_begin_lambda_function_declaration(znode *result, znode *function_to current_op->result = *result; CG(active_op_array)->fn_flags |= ZEND_ACC_CLOSURE; } +/* }}} */ - -void zend_do_handle_exception(TSRMLS_D) +void zend_do_handle_exception(TSRMLS_D) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -1412,9 +1443,9 @@ void zend_do_handle_exception(TSRMLS_D) SET_UNUSED(opline->op1); SET_UNUSED(opline->op2); } +/* }}} */ - -void zend_do_end_function_declaration(const znode *function_token TSRMLS_DC) +void zend_do_end_function_declaration(const znode *function_token TSRMLS_DC) /* {{{ */ { char lcname[16]; int name_len; @@ -1446,9 +1477,9 @@ void zend_do_end_function_declaration(const znode *function_token TSRMLS_DC) zend_stack_del_top(&CG(switch_cond_stack)); zend_stack_del_top(&CG(foreach_copy_stack)); } +/* }}} */ - -void zend_do_receive_arg(zend_uchar op, const znode *var, const znode *offset, const znode *initialization, znode *class_type, const znode *varname, zend_uchar pass_by_reference TSRMLS_DC) +void zend_do_receive_arg(zend_uchar op, const znode *var, const znode *offset, const znode *initialization, znode *class_type, const znode *varname, zend_uchar pass_by_reference TSRMLS_DC) /* {{{ */ { zend_op *opline; zend_arg_info *cur_arg_info; @@ -1526,9 +1557,9 @@ void zend_do_receive_arg(zend_uchar op, const znode *var, const znode *offset, c } opline->result.u.EA.type |= EXT_TYPE_UNUSED; } +/* }}} */ - -int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace TSRMLS_DC) +int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace TSRMLS_DC) /* {{{ */ { zend_function *function; char *lcname; @@ -1561,10 +1592,9 @@ int zend_do_begin_function_call(znode *function_name, zend_bool check_namespace zend_do_extended_fcall_begin(TSRMLS_C); return 0; } +/* }}} */ - - -void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC) +void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC) /* {{{ */ { zend_op *last_op; int last_op_number; @@ -1604,9 +1634,9 @@ void zend_do_begin_method_call(znode *left_bracket TSRMLS_DC) zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(zend_function *)); zend_do_extended_fcall_begin(TSRMLS_C); } +/* }}} */ - -void zend_do_clone(znode *result, const znode *expr TSRMLS_DC) +void zend_do_clone(znode *result, const znode *expr TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -1617,9 +1647,9 @@ void zend_do_clone(znode *result, const znode *expr TSRMLS_DC) opline->result.u.var = get_temporary_variable(CG(active_op_array)); *result = opline->result; } +/* }}} */ - -void zend_do_begin_dynamic_function_call(znode *function_name, int ns_call TSRMLS_DC) +void zend_do_begin_dynamic_function_call(znode *function_name, int ns_call TSRMLS_DC) /* {{{ */ { unsigned char *ptr = NULL; zend_op *opline, *opline2; @@ -1671,8 +1701,9 @@ void zend_do_begin_dynamic_function_call(znode *function_name, int ns_call TSRML zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(zend_function *)); zend_do_extended_fcall_begin(TSRMLS_C); } +/* }}} */ -void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace TSRMLS_DC) +void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace TSRMLS_DC) /* {{{ */ { znode tmp; int len; @@ -1721,8 +1752,9 @@ void zend_resolve_non_class_name(znode *element_name, zend_bool check_namespace *element_name = tmp; } } +/* }}} */ -void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC) +void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC) /* {{{ */ { char *compound; char *lcname; @@ -1794,8 +1826,9 @@ void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_ efree(lcname); } } +/* }}} */ -void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC) +void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC) /* {{{ */ { long fetch_class_op_number; zend_op *opline; @@ -1841,6 +1874,7 @@ void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC) opline->result.op_type = IS_VAR; /* FIXME: Hack so that INIT_FCALL_BY_NAME still knows this is a class */ *result = opline->result; } +/* }}} */ void zend_do_label(znode *label TSRMLS_DC) /* {{{ */ { @@ -1947,7 +1981,7 @@ void zend_release_labels(TSRMLS_D) /* {{{ */ } /* }}} */ -void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_class_member TSRMLS_DC) +void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_class_member TSRMLS_DC) /* {{{ */ { zend_uint length; @@ -1973,8 +2007,9 @@ void zend_do_build_full_name(znode *result, znode *prefix, znode *name, int is_c result->u.constant.value.str.len = length; } } +/* }}} */ -int zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC) +int zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC) /* {{{ */ { znode class_node; unsigned char *ptr = NULL; @@ -2008,9 +2043,9 @@ int zend_do_begin_class_member_function_call(znode *class_name, znode *method_na zend_do_extended_fcall_begin(TSRMLS_C); return 1; /* Dynamic */ } +/* }}} */ - -void zend_do_end_function_call(znode *function_name, znode *result, const znode *argument_list, int is_method, int is_dynamic_fcall TSRMLS_DC) +void zend_do_end_function_call(znode *function_name, znode *result, const znode *argument_list, int is_method, int is_dynamic_fcall TSRMLS_DC) /* {{{ */ { zend_op *opline; @@ -2040,9 +2075,9 @@ void zend_do_end_function_call(znode *function_name, znode *result, const znode zend_stack_del_top(&CG(function_call_stack)); opline->extended_value = Z_LVAL(argument_list->u.constant); } +/* }}} */ - -void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) +void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{{ */ { zend_op *opline; int original_op=op; @@ -2147,9 +2182,9 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) opline->op2.u.opline_num = offset; SET_UNUSED(opline->op2); } +/* }}} */ - -static int generate_free_switch_expr(const zend_switch_entry *switch_entry TSRMLS_DC) +static int generate_free_switch_expr(const zend_switch_entry *switch_entry TSRMLS_DC) /* {{{ */ { zend_op *opline; @@ -2165,8 +2200,9 @@ static int generate_free_switch_expr(const zend_switch_entry *switch_entry TSRML opline->extended_value = 0; return 0; } +/* }}} */ -static int generate_free_foreach_copy(const zend_op *foreach_copy TSRMLS_DC) +static int generate_free_foreach_copy(const zend_op *foreach_copy TSRMLS_DC) /* {{{ */ { zend_op *opline; @@ -2193,8 +2229,9 @@ static int generate_free_foreach_copy(const zend_op *foreach_copy TSRMLS_DC) return 0; } +/* }}} */ -void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC) +void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC) /* {{{ */ { zend_op *opline; int start_op_number, end_op_number; @@ -2240,9 +2277,9 @@ void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC) SET_UNUSED(opline->op2); } +/* }}} */ - -static int zend_add_try_element(zend_uint try_op TSRMLS_DC) +static int zend_add_try_element(zend_uint try_op TSRMLS_DC) /* {{{ */ { int try_catch_offset = CG(active_op_array)->last_try_catch++; @@ -2250,20 +2287,21 @@ static int zend_add_try_element(zend_uint try_op TSRMLS_DC) CG(active_op_array)->try_catch_array[try_catch_offset].try_op = try_op; return try_catch_offset; } +/* }}} */ -static void zend_add_catch_element(int offset, zend_uint catch_op TSRMLS_DC) +static void zend_add_catch_element(int offset, zend_uint catch_op TSRMLS_DC) /* {{{ */ { CG(active_op_array)->try_catch_array[offset].catch_op = catch_op; } +/* }}} */ - -void zend_do_first_catch(znode *open_parentheses TSRMLS_DC) +void zend_do_first_catch(znode *open_parentheses TSRMLS_DC) /* {{{ */ { open_parentheses->u.opline_num = get_next_op_number(CG(active_op_array)); } +/* }}} */ - -void zend_initialize_try_catch_element(const znode *try_token TSRMLS_DC) +void zend_initialize_try_catch_element(const znode *try_token TSRMLS_DC) /* {{{ */ { int jmp_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -2282,9 +2320,9 @@ void zend_initialize_try_catch_element(const znode *try_token TSRMLS_DC) zend_add_catch_element(try_token->u.opline_num, get_next_op_number(CG(active_op_array)) TSRMLS_CC); } +/* }}} */ - -void zend_do_mark_last_catch(const znode *first_catch, const znode *last_additional_catch TSRMLS_DC) +void zend_do_mark_last_catch(const znode *first_catch, const znode *last_additional_catch TSRMLS_DC) /* {{{ */ { CG(active_op_array)->last--; zend_do_if_end(TSRMLS_C); @@ -2297,16 +2335,16 @@ void zend_do_mark_last_catch(const znode *first_catch, const znode *last_additio } DEC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_try(znode *try_token TSRMLS_DC) +void zend_do_try(znode *try_token TSRMLS_DC) /* {{{ */ { try_token->u.opline_num = zend_add_try_element(get_next_op_number(CG(active_op_array)) TSRMLS_CC); INC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_begin_catch(znode *try_token, znode *class_name, const znode *catch_var, znode *first_catch TSRMLS_DC) +void zend_do_begin_catch(znode *try_token, znode *class_name, const znode *catch_var, znode *first_catch TSRMLS_DC) /* {{{ */ { long catch_op_number; zend_op *opline; @@ -2337,8 +2375,9 @@ void zend_do_begin_catch(znode *try_token, znode *class_name, const znode *catch try_token->u.opline_num = catch_op_number; } +/* }}} */ -void zend_do_end_catch(const znode *try_token TSRMLS_DC) +void zend_do_end_catch(const znode *try_token TSRMLS_DC) /* {{{ */ { int jmp_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -2354,8 +2393,9 @@ void zend_do_end_catch(const znode *try_token TSRMLS_DC) CG(active_op_array)->opcodes[try_token->u.opline_num].extended_value = get_next_op_number(CG(active_op_array)); } +/* }}} */ -void zend_do_throw(const znode *expr TSRMLS_DC) +void zend_do_throw(const znode *expr TSRMLS_DC) /* {{{ */ { zend_op *opline; @@ -2364,8 +2404,9 @@ void zend_do_throw(const znode *expr TSRMLS_DC) opline->op1 = *expr; SET_UNUSED(opline->op2); } +/* }}} */ -ZEND_API void function_add_ref(zend_function *function) +ZEND_API void function_add_ref(zend_function *function) /* {{{ */ { if (function->type == ZEND_USER_FUNCTION) { zend_op_array *op_array = &function->op_array; @@ -2381,8 +2422,9 @@ ZEND_API void function_add_ref(zend_function *function) } } } +/* }}} */ -static void do_inherit_parent_constructor(zend_class_entry *ce) +static void do_inherit_parent_constructor(zend_class_entry *ce) /* {{{ */ { zend_function *function; @@ -2469,9 +2511,9 @@ static void do_inherit_parent_constructor(zend_class_entry *ce) } ce->constructor = ce->parent->constructor; } +/* }}} */ - -char *zend_visibility_string(zend_uint fn_flags) +char *zend_visibility_string(zend_uint fn_flags) /* {{{ */ { if (fn_flags & ZEND_ACC_PRIVATE) { return "private"; @@ -2484,9 +2526,9 @@ char *zend_visibility_string(zend_uint fn_flags) } return ""; } +/* }}} */ - -static void do_inherit_method(zend_function *function) +static void do_inherit_method(zend_function *function) /* {{{ */ { /* The class entry of the derived function intentionally remains the same * as that of the parent class. That allows us to know in which context @@ -2494,9 +2536,9 @@ static void do_inherit_method(zend_function *function) */ function_add_ref(function); } +/* }}} */ - -static zend_bool zend_do_perform_implementation_check(const zend_function *fe, const zend_function *proto) +static zend_bool zend_do_perform_implementation_check(const zend_function *fe, const zend_function *proto) /* {{{ */ { zend_uint i; @@ -2559,9 +2601,9 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c } return 1; } +/* }}} */ - -static zend_bool do_inherit_method_check(HashTable *child_function_table, zend_function *parent, const zend_hash_key *hash_key, zend_class_entry *child_ce) +static zend_bool do_inherit_method_check(HashTable *child_function_table, zend_function *parent, const zend_hash_key *hash_key, zend_class_entry *child_ce) /* {{{ */ { zend_uint child_flags; zend_uint parent_flags = parent->common.fn_flags; @@ -2639,9 +2681,9 @@ static zend_bool do_inherit_method_check(HashTable *child_function_table, zend_f return 0; } +/* }}} */ - -static zend_bool do_inherit_property_access_check(HashTable *target_ht, zend_property_info *parent_info, const zend_hash_key *hash_key, zend_class_entry *ce) +static zend_bool do_inherit_property_access_check(HashTable *target_ht, zend_property_info *parent_info, const zend_hash_key *hash_key, zend_class_entry *ce) /* {{{ */ { zend_property_info *child_info; zend_class_entry *parent_ce = ce->parent; @@ -2718,10 +2760,9 @@ static zend_bool do_inherit_property_access_check(HashTable *target_ht, zend_pro return 1; /* Copy from parent */ } } +/* }}} */ - - -static inline void do_implement_interface(zend_class_entry *ce, zend_class_entry *iface TSRMLS_DC) +static inline void do_implement_interface(zend_class_entry *ce, zend_class_entry *iface TSRMLS_DC) /* {{{ */ { if (!(ce->ce_flags & ZEND_ACC_INTERFACE) && iface->interface_gets_implemented && iface->interface_gets_implemented(iface, ce TSRMLS_CC) == FAILURE) { zend_error(E_CORE_ERROR, "Class %s could not implement interface %s", ce->name, iface->name); @@ -2730,9 +2771,9 @@ static inline void do_implement_interface(zend_class_entry *ce, zend_class_entry zend_error(E_ERROR, "Interface %s cannot implement itself", ce->name); } } +/* }}} */ - -ZEND_API void zend_do_inherit_interfaces(zend_class_entry *ce, const zend_class_entry *iface TSRMLS_DC) +ZEND_API void zend_do_inherit_interfaces(zend_class_entry *ce, const zend_class_entry *iface TSRMLS_DC) /* {{{ */ { /* expects interface to be contained in ce's interface list already */ zend_uint i, ce_num, if_num = iface->num_interfaces; @@ -2767,8 +2808,9 @@ ZEND_API void zend_do_inherit_interfaces(zend_class_entry *ce, const zend_class_ do_implement_interface(ce, ce->interfaces[ce_num++] TSRMLS_CC); } } +/* }}} */ -static int inherit_static_prop(zval **p TSRMLS_DC, int num_args, va_list args, const zend_hash_key *key) +static int inherit_static_prop(zval **p TSRMLS_DC, int num_args, va_list args, const zend_hash_key *key) /* {{{ */ { HashTable *target = va_arg(args, HashTable*); @@ -2780,8 +2822,9 @@ static int inherit_static_prop(zval **p TSRMLS_DC, int num_args, va_list args, c } return ZEND_HASH_APPLY_KEEP; } +/* }}} */ -ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce TSRMLS_DC) +ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce TSRMLS_DC) /* {{{ */ { if ((ce->ce_flags & ZEND_ACC_INTERFACE) && !(parent_ce->ce_flags & ZEND_ACC_INTERFACE)) { @@ -2825,9 +2868,9 @@ ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent zend_verify_abstract_class(ce TSRMLS_CC); } } +/* }}} */ - -static zend_bool do_inherit_constant_check(HashTable *child_constants_table, const zval **parent_constant, const zend_hash_key *hash_key, const zend_class_entry *iface) +static zend_bool do_inherit_constant_check(HashTable *child_constants_table, const zval **parent_constant, const zend_hash_key *hash_key, const zend_class_entry *iface) /* {{{ */ { zval **old_constant; @@ -2839,9 +2882,9 @@ static zend_bool do_inherit_constant_check(HashTable *child_constants_table, con } return 1; } +/* }}} */ - -ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry *iface TSRMLS_DC) +ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry *iface TSRMLS_DC) /* {{{ */ { zend_uint i, ignore = 0; zend_uint current_iface_num = ce->num_interfaces; @@ -2876,9 +2919,9 @@ ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry zend_do_inherit_interfaces(ce, iface TSRMLS_CC); } } +/* }}} */ - -ZEND_API int do_bind_function(zend_op *opline, HashTable *function_table, zend_bool compile_time) +ZEND_API int do_bind_function(zend_op *opline, HashTable *function_table, zend_bool compile_time) /* {{{ */ { zend_function *function; @@ -2904,9 +2947,9 @@ ZEND_API int do_bind_function(zend_op *opline, HashTable *function_table, zend_b return SUCCESS; } } +/* }}} */ - -ZEND_API zend_class_entry *do_bind_class(const zend_op *opline, HashTable *class_table, zend_bool compile_time TSRMLS_DC) +ZEND_API zend_class_entry *do_bind_class(const zend_op *opline, HashTable *class_table, zend_bool compile_time TSRMLS_DC) /* {{{ */ { zend_class_entry *ce, **pce; @@ -2935,9 +2978,9 @@ ZEND_API zend_class_entry *do_bind_class(const zend_op *opline, HashTable *class return ce; } } +/* }}} */ - -ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op *opline, HashTable *class_table, zend_class_entry *parent_ce, zend_bool compile_time TSRMLS_DC) +ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op *opline, HashTable *class_table, zend_class_entry *parent_ce, zend_bool compile_time TSRMLS_DC) /* {{{ */ { zend_class_entry *ce, **pce; int found_ce; @@ -2972,9 +3015,9 @@ ZEND_API zend_class_entry *do_bind_inherited_class(const zend_op *opline, HashTa } return ce; } +/* }}} */ - -void zend_do_early_binding(TSRMLS_D) +void zend_do_early_binding(TSRMLS_D) /* {{{ */ { zend_op *opline = &CG(active_op_array)->opcodes[CG(active_op_array)->last-1]; HashTable *table; @@ -3042,8 +3085,9 @@ void zend_do_early_binding(TSRMLS_D) zval_dtor(&opline->op2.u.constant); MAKE_NOP(opline); } +/* }}} */ -ZEND_API void zend_do_delayed_early_binding(const zend_op_array *op_array TSRMLS_DC) +ZEND_API void zend_do_delayed_early_binding(const zend_op_array *op_array TSRMLS_DC) /* {{{ */ { if (op_array->early_binding != -1) { zend_bool orig_in_compilation = CG(in_compilation); @@ -3060,8 +3104,9 @@ ZEND_API void zend_do_delayed_early_binding(const zend_op_array *op_array TSRMLS CG(in_compilation) = orig_in_compilation; } } +/* }}} */ -void zend_do_boolean_or_begin(znode *expr1, znode *op_token TSRMLS_DC) +void zend_do_boolean_or_begin(znode *expr1, znode *op_token TSRMLS_DC) /* {{{ */ { int next_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3080,9 +3125,9 @@ void zend_do_boolean_or_begin(znode *expr1, znode *op_token TSRMLS_DC) *expr1 = opline->result; } +/* }}} */ - -void zend_do_boolean_or_end(znode *result, const znode *expr1, const znode *expr2, znode *op_token TSRMLS_DC) +void zend_do_boolean_or_end(znode *result, const znode *expr1, const znode *expr2, znode *op_token TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3094,9 +3139,9 @@ void zend_do_boolean_or_end(znode *result, const znode *expr1, const znode *expr CG(active_op_array)->opcodes[op_token->u.opline_num].op2.u.opline_num = get_next_op_number(CG(active_op_array)); } +/* }}} */ - -void zend_do_boolean_and_begin(znode *expr1, znode *op_token TSRMLS_DC) +void zend_do_boolean_and_begin(znode *expr1, znode *op_token TSRMLS_DC) /* {{{ */ { int next_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3115,9 +3160,9 @@ void zend_do_boolean_and_begin(znode *expr1, znode *op_token TSRMLS_DC) *expr1 = opline->result; } +/* }}} */ - -void zend_do_boolean_and_end(znode *result, const znode *expr1, const znode *expr2, const znode *op_token TSRMLS_DC) +void zend_do_boolean_and_end(znode *result, const znode *expr1, const znode *expr2, const znode *op_token TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3129,16 +3174,16 @@ void zend_do_boolean_and_end(znode *result, const znode *expr1, const znode *exp CG(active_op_array)->opcodes[op_token->u.opline_num].op2.u.opline_num = get_next_op_number(CG(active_op_array)); } +/* }}} */ - -void zend_do_do_while_begin(TSRMLS_D) +void zend_do_do_while_begin(TSRMLS_D) /* {{{ */ { do_begin_loop(TSRMLS_C); INC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_do_while_end(const znode *do_token, const znode *expr_open_bracket, const znode *expr TSRMLS_DC) +void zend_do_do_while_end(const znode *do_token, const znode *expr_open_bracket, const znode *expr TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3151,9 +3196,9 @@ void zend_do_do_while_end(const znode *do_token, const znode *expr_open_bracket, DEC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_brk_cont(zend_uchar op, const znode *expr TSRMLS_DC) +void zend_do_brk_cont(zend_uchar op, const znode *expr TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3169,9 +3214,9 @@ void zend_do_brk_cont(zend_uchar op, const znode *expr TSRMLS_DC) opline->op2.op_type = IS_CONST; } } +/* }}} */ - -void zend_do_switch_cond(const znode *cond TSRMLS_DC) +void zend_do_switch_cond(const znode *cond TSRMLS_DC) /* {{{ */ { zend_switch_entry switch_entry; @@ -3184,10 +3229,9 @@ void zend_do_switch_cond(const znode *cond TSRMLS_DC) INC_BPC(CG(active_op_array)); } +/* }}} */ - - -void zend_do_switch_end(const znode *case_list TSRMLS_DC) +void zend_do_switch_end(const znode *case_list TSRMLS_DC) /* {{{ */ { zend_op *opline; zend_switch_entry *switch_entry_ptr; @@ -3228,9 +3272,9 @@ void zend_do_switch_end(const znode *case_list TSRMLS_DC) DEC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_case_before_statement(const znode *case_list, znode *case_token, const znode *case_expr TSRMLS_DC) +void zend_do_case_before_statement(const znode *case_list, znode *case_token, const znode *case_expr TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); int next_op_number; @@ -3265,9 +3309,9 @@ void zend_do_case_before_statement(const znode *case_list, znode *case_token, co next_op_number = get_next_op_number(CG(active_op_array)); CG(active_op_array)->opcodes[case_list->u.opline_num].op1.u.opline_num = next_op_number; } +/* }}} */ - -void zend_do_case_after_statement(znode *result, const znode *case_token TSRMLS_DC) +void zend_do_case_after_statement(znode *result, const znode *case_token TSRMLS_DC) /* {{{ */ { int next_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3286,10 +3330,9 @@ void zend_do_case_after_statement(znode *result, const znode *case_token TSRMLS_ break; } } +/* }}} */ - - -void zend_do_default_before_statement(const znode *case_list, znode *default_token TSRMLS_DC) +void zend_do_default_before_statement(const znode *case_list, znode *default_token TSRMLS_DC) /* {{{ */ { int next_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3310,9 +3353,9 @@ void zend_do_default_before_statement(const znode *case_list, znode *default_tok } CG(active_op_array)->opcodes[case_list->u.opline_num].op1.u.opline_num = next_op_number; } +/* }}} */ - -void zend_do_begin_class_declaration(const znode *class_token, znode *class_name, const znode *parent_class_name TSRMLS_DC) +void zend_do_begin_class_declaration(const znode *class_token, znode *class_name, const znode *parent_class_name TSRMLS_DC) /* {{{ */ { zend_op *opline; int doing_inheritance = 0; @@ -3420,9 +3463,9 @@ void zend_do_begin_class_declaration(const znode *class_token, znode *class_name CG(doc_comment_len) = 0; } } +/* }}} */ - -static void do_verify_abstract_class(TSRMLS_D) +static void do_verify_abstract_class(TSRMLS_D) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3430,9 +3473,9 @@ static void do_verify_abstract_class(TSRMLS_D) opline->op1 = CG(implementing_class); SET_UNUSED(opline->op2); } +/* }}} */ - -void zend_do_end_class_declaration(const znode *class_token, const znode *parent_token TSRMLS_DC) +void zend_do_end_class_declaration(const znode *class_token, const znode *parent_token TSRMLS_DC) /* {{{ */ { zend_class_entry *ce = CG(active_class_entry); @@ -3475,9 +3518,9 @@ void zend_do_end_class_declaration(const znode *class_token, const znode *parent } CG(active_class_entry) = NULL; } +/* }}} */ - -void zend_do_implements_interface(znode *interface_name TSRMLS_DC) +void zend_do_implements_interface(znode *interface_name TSRMLS_DC) /* {{{ */ { zend_op *opline; @@ -3499,9 +3542,9 @@ void zend_do_implements_interface(znode *interface_name TSRMLS_DC) opline->op2 = *interface_name; CG(active_class_entry)->num_interfaces++; } +/* }}} */ - -ZEND_API void zend_mangle_property_name(char **dest, int *dest_length, const char *src1, int src1_length, const char *src2, int src2_length, int internal) +ZEND_API void zend_mangle_property_name(char **dest, int *dest_length, const char *src1, int src1_length, const char *src2, int src2_length, int internal) /* {{{ */ { char *prop_name; int prop_name_length; @@ -3515,16 +3558,17 @@ ZEND_API void zend_mangle_property_name(char **dest, int *dest_length, const cha *dest = prop_name; *dest_length = prop_name_length; } +/* }}} */ - -static int zend_strnlen(const char* s, int maxlen) +static int zend_strnlen(const char* s, int maxlen) /* {{{ */ { int len = 0; while (*s++ && maxlen--) len++; return len; } +/* }}} */ -ZEND_API int zend_unmangle_property_name(char *mangled_property, int len, char **class_name, char **prop_name) +ZEND_API int zend_unmangle_property_name(char *mangled_property, int len, char **class_name, char **prop_name) /* {{{ */ { int class_name_len; @@ -3550,8 +3594,9 @@ ZEND_API int zend_unmangle_property_name(char *mangled_property, int len, char * *prop_name = (*class_name)+class_name_len; return SUCCESS; } +/* }}} */ -void zend_do_declare_property(const znode *var_name, const znode *value, zend_uint access_type TSRMLS_DC) +void zend_do_declare_property(const znode *var_name, const znode *value, zend_uint access_type TSRMLS_DC) /* {{{ */ { zval *property; zend_property_info *existing_property_info; @@ -3595,9 +3640,9 @@ void zend_do_declare_property(const znode *var_name, const znode *value, zend_ui zend_declare_property_ex(CG(active_class_entry), var_name->u.constant.value.str.val, var_name->u.constant.value.str.len, property, access_type, comment, comment_len TSRMLS_CC); efree(var_name->u.constant.value.str.val); } +/* }}} */ - -void zend_do_declare_class_constant(znode *var_name, const znode *value TSRMLS_DC) +void zend_do_declare_class_constant(znode *var_name, const znode *value TSRMLS_DC) /* {{{ */ { zval *property; @@ -3614,10 +3659,9 @@ void zend_do_declare_class_constant(znode *var_name, const znode *value TSRMLS_D } FREE_PNODE(var_name); } +/* }}} */ - - -void zend_do_fetch_property(znode *result, znode *object, const znode *property TSRMLS_DC) +void zend_do_fetch_property(znode *result, znode *object, const znode *property TSRMLS_DC) /* {{{ */ { zend_op opline; zend_llist *fetch_list_ptr; @@ -3673,8 +3717,9 @@ void zend_do_fetch_property(znode *result, znode *object, const znode *property zend_llist_add_element(fetch_list_ptr, &opline); } +/* }}} */ -void zend_do_halt_compiler_register(TSRMLS_D) +void zend_do_halt_compiler_register(TSRMLS_D) /* {{{ */ { char *name, *cfilename; char haltoff[] = "__COMPILER_HALT_OFFSET__"; @@ -3685,8 +3730,9 @@ void zend_do_halt_compiler_register(TSRMLS_D) zend_register_long_constant(name, len+1, zend_get_scanned_file_offset(TSRMLS_C), CONST_CS, 0 TSRMLS_CC); pefree(name, 0); } +/* }}} */ -void zend_do_declare_implicit_property(TSRMLS_D) +void zend_do_declare_implicit_property(TSRMLS_D) /* {{{ */ { /* Fixes bug #26182. Not sure why we needed to do this in the first place. Has to be checked with Zeev. @@ -3718,15 +3764,15 @@ void zend_do_declare_implicit_property(TSRMLS_D) } #endif } +/* }}} */ - -void zend_do_push_object(const znode *object TSRMLS_DC) +void zend_do_push_object(const znode *object TSRMLS_DC) /* {{{ */ { zend_stack_push(&CG(object_stack), object, sizeof(znode)); } +/* }}} */ - -void zend_do_pop_object(znode *object TSRMLS_DC) +void zend_do_pop_object(znode *object TSRMLS_DC) /* {{{ */ { if (object) { znode *tmp; @@ -3736,9 +3782,9 @@ void zend_do_pop_object(znode *object TSRMLS_DC) } zend_stack_del_top(&CG(object_stack)); } +/* }}} */ - -void zend_do_begin_new_object(znode *new_token, znode *class_type TSRMLS_DC) +void zend_do_begin_new_object(znode *new_token, znode *class_type TSRMLS_DC) /* {{{ */ { zend_op *opline; unsigned char *ptr = NULL; @@ -3753,9 +3799,9 @@ void zend_do_begin_new_object(znode *new_token, znode *class_type TSRMLS_DC) zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(unsigned char *)); } +/* }}} */ - -void zend_do_end_new_object(znode *result, const znode *new_token, const znode *argument_list TSRMLS_DC) +void zend_do_end_new_object(znode *result, const znode *new_token, const znode *argument_list TSRMLS_DC) /* {{{ */ { znode ctor_result; @@ -3765,6 +3811,7 @@ void zend_do_end_new_object(znode *result, const znode *new_token, const znode * CG(active_op_array)->opcodes[new_token->u.opline_num].op2.u.opline_num = get_next_op_number(CG(active_op_array)); *result = CG(active_op_array)->opcodes[new_token->u.opline_num].result; } +/* }}} */ static zend_constant* zend_get_ct_const(const zval *const_name, int all_internal_constants_substitution TSRMLS_DC) /* {{{ */ { @@ -3912,9 +3959,9 @@ void zend_do_fetch_constant(znode *result, znode *constant_container, znode *con break; } } +/* }}} */ - -void zend_do_shell_exec(znode *result, const znode *cmd TSRMLS_DC) +void zend_do_shell_exec(znode *result, const znode *cmd TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3947,10 +3994,9 @@ void zend_do_shell_exec(znode *result, const znode *cmd TSRMLS_DC) ZVAL_LONG(&opline->op2.u.constant, zend_hash_func("shell_exec", sizeof("shell_exec"))); *result = opline->result; } +/* }}} */ - - -void zend_do_init_array(znode *result, const znode *expr, const znode *offset, zend_bool is_ref TSRMLS_DC) +void zend_do_init_array(znode *result, const znode *expr, const znode *offset, zend_bool is_ref TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3971,9 +4017,9 @@ void zend_do_init_array(znode *result, const znode *expr, const znode *offset, z } opline->extended_value = is_ref; } +/* }}} */ - -void zend_do_add_array_element(znode *result, const znode *expr, const znode *offset, zend_bool is_ref TSRMLS_DC) +void zend_do_add_array_element(znode *result, const znode *expr, const znode *offset, zend_bool is_ref TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -3987,10 +4033,9 @@ void zend_do_add_array_element(znode *result, const znode *expr, const znode *of } opline->extended_value = is_ref; } +/* }}} */ - - -void zend_do_add_static_array_element(znode *result, znode *offset, const znode *expr) +void zend_do_add_static_array_element(znode *result, znode *offset, const znode *expr) /* {{{ */ { zval *element; @@ -4029,9 +4074,9 @@ void zend_do_add_static_array_element(znode *result, znode *offset, const znode zend_hash_next_index_insert(Z_ARRVAL(result->u.constant), &element, sizeof(zval *), NULL); } } +/* }}} */ - -void zend_do_add_list_element(const znode *element TSRMLS_DC) +void zend_do_add_list_element(const znode *element TSRMLS_DC) /* {{{ */ { list_llist_element lle; @@ -4044,23 +4089,23 @@ void zend_do_add_list_element(const znode *element TSRMLS_DC) } (*((int *)CG(dimension_llist).tail->data))++; } +/* }}} */ - -void zend_do_new_list_begin(TSRMLS_D) +void zend_do_new_list_begin(TSRMLS_D) /* {{{ */ { int current_dimension = 0; zend_llist_add_element(&CG(dimension_llist), ¤t_dimension); } +/* }}} */ - -void zend_do_new_list_end(TSRMLS_D) +void zend_do_new_list_end(TSRMLS_D) /* {{{ */ { zend_llist_remove_tail(&CG(dimension_llist)); (*((int *)CG(dimension_llist).tail->data))++; } +/* }}} */ - -void zend_do_list_init(TSRMLS_D) +void zend_do_list_init(TSRMLS_D) /* {{{ */ { zend_stack_push(&CG(list_stack), &CG(list_llist), sizeof(zend_llist)); zend_stack_push(&CG(list_stack), &CG(dimension_llist), sizeof(zend_llist)); @@ -4068,9 +4113,9 @@ void zend_do_list_init(TSRMLS_D) zend_llist_init(&CG(dimension_llist), sizeof(int), NULL, 0); zend_do_new_list_begin(TSRMLS_C); } +/* }}} */ - -void zend_do_list_end(znode *result, znode *expr TSRMLS_DC) +void zend_do_list_end(znode *result, znode *expr TSRMLS_DC) /* {{{ */ { zend_llist_element *le; zend_llist_element *dimension; @@ -4134,8 +4179,9 @@ void zend_do_list_end(znode *result, znode *expr TSRMLS_DC) zend_stack_del_top(&CG(list_stack)); } } +/* }}} */ -void zend_do_fetch_static_variable(znode *varname, const znode *static_assignment, int fetch_type TSRMLS_DC) +void zend_do_fetch_static_variable(znode *varname, const znode *static_assignment, int fetch_type TSRMLS_DC) /* {{{ */ { zval *tmp; zend_op *opline; @@ -4189,8 +4235,9 @@ void zend_do_fetch_static_variable(znode *varname, const znode *static_assignmen /* zval_dtor(&varname->u.constant); */ } +/* }}} */ -void zend_do_fetch_lexical_variable(znode *varname, zend_bool is_ref TSRMLS_DC) +void zend_do_fetch_lexical_variable(znode *varname, zend_bool is_ref TSRMLS_DC) /* {{{ */ { znode value; @@ -4208,8 +4255,9 @@ void zend_do_fetch_lexical_variable(znode *varname, zend_bool is_ref TSRMLS_DC) zend_do_fetch_static_variable(varname, &value, is_ref ? ZEND_FETCH_STATIC : ZEND_FETCH_LEXICAL TSRMLS_CC); } +/* }}} */ -void zend_do_fetch_global_variable(znode *varname, const znode *static_assignment, int fetch_type TSRMLS_DC) +void zend_do_fetch_global_variable(znode *varname, const znode *static_assignment, int fetch_type TSRMLS_DC) /* {{{ */ { zend_op *opline; znode lval; @@ -4239,9 +4287,9 @@ void zend_do_fetch_global_variable(znode *varname, const znode *static_assignmen zend_do_assign_ref(NULL, &lval, &result TSRMLS_CC); CG(active_op_array)->opcodes[CG(active_op_array)->last-1].result.u.EA.type |= EXT_TYPE_UNUSED; } +/* }}} */ - -void zend_do_cast(znode *result, const znode *expr, int type TSRMLS_DC) +void zend_do_cast(znode *result, const znode *expr, int type TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -4253,9 +4301,9 @@ void zend_do_cast(znode *result, const znode *expr, int type TSRMLS_DC) opline->extended_value = type; *result = opline->result; } +/* }}} */ - -void zend_do_include_or_eval(int type, znode *result, const znode *op1 TSRMLS_DC) +void zend_do_include_or_eval(int type, znode *result, const znode *op1 TSRMLS_DC) /* {{{ */ { zend_do_extended_fcall_begin(TSRMLS_C); { @@ -4271,9 +4319,9 @@ void zend_do_include_or_eval(int type, znode *result, const znode *op1 TSRMLS_DC } zend_do_extended_fcall_end(TSRMLS_C); } +/* }}} */ - -void zend_do_indirect_references(znode *result, const znode *num_references, znode *variable TSRMLS_DC) +void zend_do_indirect_references(znode *result, const znode *num_references, znode *variable TSRMLS_DC) /* {{{ */ { int i; @@ -4285,9 +4333,9 @@ void zend_do_indirect_references(znode *result, const znode *num_references, zno zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(result, variable, 1 TSRMLS_CC); } +/* }}} */ - -void zend_do_unset(const znode *variable TSRMLS_DC) +void zend_do_unset(const znode *variable TSRMLS_DC) /* {{{ */ { zend_op *last_op; @@ -4318,9 +4366,9 @@ void zend_do_unset(const znode *variable TSRMLS_DC) } } } +/* }}} */ - -void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC) +void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC) /* {{{ */ { zend_op *last_op; @@ -4357,9 +4405,9 @@ void zend_do_isset_or_isempty(int type, znode *result, znode *variable TSRMLS_DC *result = last_op->result; } +/* }}} */ - -void zend_do_instanceof(znode *result, const znode *expr, const znode *class_znode, int type TSRMLS_DC) +void zend_do_instanceof(znode *result, const znode *expr, const znode *class_znode, int type TSRMLS_DC) /* {{{ */ { int last_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline; @@ -4385,9 +4433,9 @@ void zend_do_instanceof(znode *result, const znode *expr, const znode *class_zno *result = opline->result; } +/* }}} */ - -void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, znode *array, znode *as_token, int variable TSRMLS_DC) +void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, znode *array, znode *as_token, int variable TSRMLS_DC) /* {{{ */ { zend_op *opline; zend_bool is_variable; @@ -4457,9 +4505,9 @@ void zend_do_foreach_begin(znode *foreach_token, znode *open_brackets_token, zno SET_UNUSED(opline->op2); SET_UNUSED(opline->result); } +/* }}} */ - -void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token, const znode *as_token, znode *value, znode *key TSRMLS_DC) +void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token, const znode *as_token, znode *value, znode *key TSRMLS_DC) /* {{{ */ { zend_op *opline; znode dummy, value_node; @@ -4536,9 +4584,9 @@ void zend_do_foreach_cont(znode *foreach_token, const znode *open_brackets_token do_begin_loop(TSRMLS_C); INC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_foreach_end(const znode *foreach_token, const znode *as_token TSRMLS_DC) +void zend_do_foreach_end(const znode *foreach_token, const znode *as_token TSRMLS_DC) /* {{{ */ { zend_op *container_ptr; zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -4559,15 +4607,15 @@ void zend_do_foreach_end(const znode *foreach_token, const znode *as_token TSRML DEC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_declare_begin(TSRMLS_D) +void zend_do_declare_begin(TSRMLS_D) /* {{{ */ { zend_stack_push(&CG(declare_stack), &CG(declarables), sizeof(zend_declarables)); } +/* }}} */ - -void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC) +void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC) /* {{{ */ { if (!zend_binary_strcasecmp(var->u.constant.value.str.val, var->u.constant.value.str.len, "ticks", sizeof("ticks")-1)) { convert_to_long(&val->u.constant); @@ -4631,9 +4679,9 @@ void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC) } zval_dtor(&var->u.constant); } +/* }}} */ - -void zend_do_declare_end(const znode *declare_token TSRMLS_DC) +void zend_do_declare_end(const znode *declare_token TSRMLS_DC) /* {{{ */ { zend_declarables *declarables; @@ -4643,9 +4691,9 @@ void zend_do_declare_end(const znode *declare_token TSRMLS_DC) CG(declarables) = *declarables; } } +/* }}} */ - -void zend_do_exit(znode *result, const znode *message TSRMLS_DC) +void zend_do_exit(znode *result, const znode *message TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -4657,8 +4705,9 @@ void zend_do_exit(znode *result, const znode *message TSRMLS_DC) Z_TYPE(result->u.constant) = IS_BOOL; Z_LVAL(result->u.constant) = 1; } +/* }}} */ -void zend_do_begin_silence(znode *strudel_token TSRMLS_DC) +void zend_do_begin_silence(znode *strudel_token TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -4669,9 +4718,9 @@ void zend_do_begin_silence(znode *strudel_token TSRMLS_DC) SET_UNUSED(opline->op2); *strudel_token = opline->result; } +/* }}} */ - -void zend_do_end_silence(const znode *strudel_token TSRMLS_DC) +void zend_do_end_silence(const znode *strudel_token TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -4679,9 +4728,9 @@ void zend_do_end_silence(const znode *strudel_token TSRMLS_DC) opline->op1 = *strudel_token; SET_UNUSED(opline->op2); } +/* }}} */ - -void zend_do_jmp_set(const znode *value, znode *jmp_token, znode *colon_token TSRMLS_DC) +void zend_do_jmp_set(const znode *value, znode *jmp_token, znode *colon_token TSRMLS_DC) /* {{{ */ { int op_number = get_next_op_number(CG(active_op_array)); zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -4698,9 +4747,9 @@ void zend_do_jmp_set(const znode *value, znode *jmp_token, znode *colon_token TS INC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_jmp_set_else(znode *result, const znode *false_value, const znode *jmp_token, const znode *colon_token TSRMLS_DC) +void zend_do_jmp_set_else(znode *result, const znode *false_value, const znode *jmp_token, const znode *colon_token TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -4716,9 +4765,9 @@ void zend_do_jmp_set_else(znode *result, const znode *false_value, const znode * DEC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_begin_qm_op(const znode *cond, znode *qm_token TSRMLS_DC) +void zend_do_begin_qm_op(const znode *cond, znode *qm_token TSRMLS_DC) /* {{{ */ { int jmpz_op_number = get_next_op_number(CG(active_op_array)); zend_op *opline; @@ -4733,9 +4782,9 @@ void zend_do_begin_qm_op(const znode *cond, znode *qm_token TSRMLS_DC) INC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_qm_true(const znode *true_value, znode *qm_token, znode *colon_token TSRMLS_DC) +void zend_do_qm_true(const znode *true_value, znode *qm_token, znode *colon_token TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -4755,9 +4804,9 @@ void zend_do_qm_true(const znode *true_value, znode *qm_token, znode *colon_toke SET_UNUSED(opline->op1); SET_UNUSED(opline->op2); } +/* }}} */ - -void zend_do_qm_false(znode *result, const znode *false_value, const znode *qm_token, const znode *colon_token TSRMLS_DC) +void zend_do_qm_false(znode *result, const znode *false_value, const znode *qm_token, const znode *colon_token TSRMLS_DC) /* {{{ */ { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -4772,9 +4821,9 @@ void zend_do_qm_false(znode *result, const znode *false_value, const znode *qm_t DEC_BPC(CG(active_op_array)); } +/* }}} */ - -void zend_do_extended_info(TSRMLS_D) +void zend_do_extended_info(TSRMLS_D) /* {{{ */ { zend_op *opline; @@ -4788,9 +4837,9 @@ void zend_do_extended_info(TSRMLS_D) SET_UNUSED(opline->op1); SET_UNUSED(opline->op2); } +/* }}} */ - -void zend_do_extended_fcall_begin(TSRMLS_D) +void zend_do_extended_fcall_begin(TSRMLS_D) /* {{{ */ { zend_op *opline; @@ -4804,9 +4853,9 @@ void zend_do_extended_fcall_begin(TSRMLS_D) SET_UNUSED(opline->op1); SET_UNUSED(opline->op2); } +/* }}} */ - -void zend_do_extended_fcall_end(TSRMLS_D) +void zend_do_extended_fcall_end(TSRMLS_D) /* {{{ */ { zend_op *opline; @@ -4820,9 +4869,9 @@ void zend_do_extended_fcall_end(TSRMLS_D) SET_UNUSED(opline->op1); SET_UNUSED(opline->op2); } +/* }}} */ - -void zend_do_ticks(TSRMLS_D) +void zend_do_ticks(TSRMLS_D) /* {{{ */ { if (Z_LVAL(CG(declarables).ticks)) { zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); @@ -4833,14 +4882,15 @@ void zend_do_ticks(TSRMLS_D) SET_UNUSED(opline->op2); } } +/* }}} */ -void zend_auto_global_dtor(zend_auto_global *auto_global) +void zend_auto_global_dtor(zend_auto_global *auto_global) /* {{{ */ { free(auto_global->name); } +/* }}} */ - -zend_bool zend_is_auto_global(const char *name, uint name_len TSRMLS_DC) +zend_bool zend_is_auto_global(const char *name, uint name_len TSRMLS_DC) /* {{{ */ { zend_auto_global *auto_global; @@ -4852,9 +4902,9 @@ zend_bool zend_is_auto_global(const char *name, uint name_len TSRMLS_DC) } return 0; } +/* }}} */ - -int zend_register_auto_global(const char *name, uint name_len, zend_auto_global_callback auto_global_callback TSRMLS_DC) +int zend_register_auto_global(const char *name, uint name_len, zend_auto_global_callback auto_global_callback TSRMLS_DC) /* {{{ */ { zend_auto_global auto_global; @@ -4864,9 +4914,9 @@ int zend_register_auto_global(const char *name, uint name_len, zend_auto_global_ return zend_hash_add(CG(auto_globals), name, name_len+1, &auto_global, sizeof(zend_auto_global), NULL); } +/* }}} */ - -int zendlex(znode *zendlval TSRMLS_DC) +int zendlex(znode *zendlval TSRMLS_DC) /* {{{ */ { int retval; @@ -4906,9 +4956,9 @@ again: zendlval->op_type = IS_CONST; return retval; } +/* }}} */ - -ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers TSRMLS_DC) +ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers TSRMLS_DC) /* {{{ */ { zend_bool persistent_hashes = (ce->type == ZEND_INTERNAL_CLASS) ? 1 : 0; dtor_func_t zval_ptr_dtor_func = ((persistent_hashes) ? ZVAL_INTERNAL_PTR_DTOR : ZVAL_PTR_DTOR); @@ -4971,9 +5021,9 @@ ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify ce->builtin_functions = NULL; } } +/* }}} */ - -int zend_get_class_fetch_type(const char *class_name, uint class_name_len) +int zend_get_class_fetch_type(const char *class_name, uint class_name_len) /* {{{ */ { if ((class_name_len == sizeof("self")-1) && !memcmp(class_name, "self", sizeof("self")-1)) { @@ -4988,14 +5038,16 @@ int zend_get_class_fetch_type(const char *class_name, uint class_name_len) return ZEND_FETCH_CLASS_DEFAULT; } } +/* }}} */ -ZEND_API char* zend_get_compiled_variable_name(const zend_op_array *op_array, zend_uint var, int* name_len) +ZEND_API char* zend_get_compiled_variable_name(const zend_op_array *op_array, zend_uint var, int* name_len) /* {{{ */ { if (name_len) { *name_len = op_array->vars[var].name_len; } return op_array->vars[var].name; } +/* }}} */ void zend_do_build_namespace_name(znode *result, znode *prefix, znode *name TSRMLS_DC) /* {{{ */ { @@ -5139,31 +5191,31 @@ void zend_do_use(znode *ns_name, znode *new_name, int is_global TSRMLS_DC) /* {{ if (CG(current_namespace)) { /* Prefix import name with current namespace name to avoid conflicts with classes */ - char *ns_name = emalloc(Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name) + 1); + char *c_ns_name = emalloc(Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name) + 1); - zend_str_tolower_copy(ns_name, Z_STRVAL_P(CG(current_namespace)), Z_STRLEN_P(CG(current_namespace))); - ns_name[Z_STRLEN_P(CG(current_namespace))] = '\\'; - memcpy(ns_name+Z_STRLEN_P(CG(current_namespace))+1, lcname, Z_STRLEN_P(name)+1); - if (zend_hash_exists(CG(class_table), ns_name, Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name)+1)) { + zend_str_tolower_copy(c_ns_name, Z_STRVAL_P(CG(current_namespace)), Z_STRLEN_P(CG(current_namespace))); + c_ns_name[Z_STRLEN_P(CG(current_namespace))] = '\\'; + memcpy(c_ns_name+Z_STRLEN_P(CG(current_namespace))+1, lcname, Z_STRLEN_P(name)+1); + if (zend_hash_exists(CG(class_table), c_ns_name, Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name)+1)) { char *tmp = zend_str_tolower_dup(Z_STRVAL_P(ns), Z_STRLEN_P(ns)); if (Z_STRLEN_P(ns) != Z_STRLEN_P(CG(current_namespace)) + 1 + Z_STRLEN_P(name) || - memcmp(tmp, ns_name, Z_STRLEN_P(ns))) { + memcmp(tmp, c_ns_name, Z_STRLEN_P(ns))) { zend_error(E_COMPILE_ERROR, "Cannot use %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name)); } efree(tmp); } - efree(ns_name); + efree(c_ns_name); } else if (zend_hash_find(CG(class_table), lcname, Z_STRLEN_P(name)+1, (void**)&pce) == SUCCESS && (*pce)->type == ZEND_USER_CLASS && (*pce)->filename == CG(compiled_filename)) { - char *tmp = zend_str_tolower_dup(Z_STRVAL_P(ns), Z_STRLEN_P(ns)); + char *c_tmp = zend_str_tolower_dup(Z_STRVAL_P(ns), Z_STRLEN_P(ns)); if (Z_STRLEN_P(ns) != Z_STRLEN_P(name) || - memcmp(tmp, lcname, Z_STRLEN_P(ns))) { + memcmp(c_tmp, lcname, Z_STRLEN_P(ns))) { zend_error(E_COMPILE_ERROR, "Cannot use %s as %s because the name is already in use", Z_STRVAL_P(ns), Z_STRVAL_P(name)); } - efree(tmp); + efree(c_tmp); } if (zend_hash_add(CG(current_import), lcname, Z_STRLEN_P(name)+1, &ns, sizeof(zval*), NULL) != SUCCESS) { diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 1771b5391..3ccd199ba 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.h,v 1.316.2.8.2.12.2.40 2009/06/05 23:20:59 shire Exp $ */ +/* $Id: zend_compile.h 281737 2009-06-05 23:20:59Z shire $ */ #ifndef ZEND_COMPILE_H #define ZEND_COMPILE_H diff --git a/Zend/zend_config.nw.h b/Zend/zend_config.nw.h index 5e734dd50..ce2a49e20 100644 --- a/Zend/zend_config.nw.h +++ b/Zend/zend_config.nw.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_config.nw.h,v 1.8.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_config.nw.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_CONFIG_NW_H #define ZEND_CONFIG_NW_H diff --git a/Zend/zend_config.w32.h b/Zend/zend_config.w32.h index fce122b31..57f08b168 100644 --- a/Zend/zend_config.w32.h +++ b/Zend/zend_config.w32.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_config.w32.h,v 1.39.2.2.2.2.2.3 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_config.w32.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_CONFIG_W32_H #define ZEND_CONFIG_W32_H diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 6be167ec8..d7f13de57 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_constants.c,v 1.71.2.5.2.7.2.17 2009/01/12 21:54:37 stas Exp $ */ +/* $Id: zend_constants.c 273405 2009-01-12 21:54:37Z stas $ */ #include "zend.h" #include "zend_constants.h" diff --git a/Zend/zend_constants.h b/Zend/zend_constants.h index 7c932e71e..0ae833783 100644 --- a/Zend/zend_constants.h +++ b/Zend/zend_constants.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_constants.h,v 1.31.2.2.2.3.2.5 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_constants.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_CONSTANTS_H #define ZEND_CONSTANTS_H diff --git a/Zend/zend_default_classes.c b/Zend/zend_default_classes.c index 875c0f080..52c9588a7 100644 --- a/Zend/zend_default_classes.c +++ b/Zend/zend_default_classes.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_default_classes.c,v 1.59.2.2.2.1.2.3 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_default_classes.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_dynamic_array.c b/Zend/zend_dynamic_array.c index 627bc94d9..3c98ffaae 100644 --- a/Zend/zend_dynamic_array.c +++ b/Zend/zend_dynamic_array.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_dynamic_array.c,v 1.13.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_dynamic_array.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include "zend.h" diff --git a/Zend/zend_dynamic_array.h b/Zend/zend_dynamic_array.h index 45ad075a0..b153a3469 100644 --- a/Zend/zend_dynamic_array.h +++ b/Zend/zend_dynamic_array.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_dynamic_array.h,v 1.14.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_dynamic_array.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_DYNAMIC_ARRAY_H #define ZEND_DYNAMIC_ARRAY_H diff --git a/Zend/zend_errors.h b/Zend/zend_errors.h index e8e600994..dbfba460b 100644 --- a/Zend/zend_errors.h +++ b/Zend/zend_errors.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_errors.h,v 1.18.2.1.2.5.2.4 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_errors.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_ERRORS_H #define ZEND_ERRORS_H diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index fc9a744cd..6c3560d05 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_exceptions.c,v 1.79.2.6.2.9.2.22 2009/05/11 15:03:46 felipe Exp $ */ +/* $Id: zend_exceptions.c 280362 2009-05-11 15:03:47Z felipe $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_exceptions.h b/Zend/zend_exceptions.h index bb21e734b..28a9be88b 100644 --- a/Zend/zend_exceptions.h +++ b/Zend/zend_exceptions.h @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_exceptions.h,v 1.21.2.1.2.2.2.5 2009/01/02 13:14:49 helly Exp $ */ +/* $Id: zend_exceptions.h 272584 2009-01-02 13:14:49Z helly $ */ #ifndef ZEND_EXCEPTIONS_H #define ZEND_EXCEPTIONS_H diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index bc0000b53..696112f52 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.c,v 1.716.2.12.2.24.2.44 2009/06/04 18:20:42 mattwil Exp $ */ +/* $Id: zend_execute.c 281670 2009-06-04 18:20:45Z mattwil $ */ #define ZEND_INTENSIVE_DEBUGGING 0 diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index 9f9e5d48a..6a1f06ab3 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.h,v 1.84.2.4.2.8.2.15 2009/06/09 09:26:02 pajoye Exp $ */ +/* $Id: zend_execute.h 287992 2009-09-03 14:33:11Z dmitry $ */ #ifndef ZEND_EXECUTE_H #define ZEND_EXECUTE_H @@ -144,9 +144,11 @@ struct _zend_vm_stack { void **top; void **end; zend_vm_stack prev; - void *elements[1]; }; +#define ZEND_VM_STACK_ELEMETS(stack) \ + ((void**)(((char*)(stack)) + ZEND_MM_ALIGNED_SIZE(sizeof(struct _zend_vm_stack)))) + #define ZEND_VM_STACK_GROW_IF_NEEDED(count) \ do { \ if (UNEXPECTED((count) > \ @@ -156,10 +158,10 @@ struct _zend_vm_stack { } while (0) static inline zend_vm_stack zend_vm_stack_new_page(int count) { - zend_vm_stack page = (zend_vm_stack)emalloc(sizeof(*page)+sizeof(page->elements[0])*(count-1)); + zend_vm_stack page = (zend_vm_stack)emalloc(ZEND_MM_ALIGNED_SIZE(sizeof(*page)) + sizeof(void*) * count); - page->top = page->elements; - page->end = page->elements + count; + page->top = ZEND_VM_STACK_ELEMETS(page); + page->end = page->top + count; page->prev = NULL; return page; } @@ -207,7 +209,7 @@ static inline void *zend_vm_stack_pop(TSRMLS_D) { void *el = *(--EG(argument_stack)->top); - if (UNEXPECTED(EG(argument_stack)->top == EG(argument_stack)->elements)) { + if (UNEXPECTED(EG(argument_stack)->top == ZEND_VM_STACK_ELEMETS(EG(argument_stack)))) { zend_vm_stack p = EG(argument_stack); EG(argument_stack) = p->prev; efree(p); @@ -221,15 +223,32 @@ static inline void *zend_vm_stack_alloc(size_t size TSRMLS_DC) size = (size + (sizeof(void*) - 1)) / sizeof(void*); - ZEND_VM_STACK_GROW_IF_NEEDED((int)size); + /* the following comparison must be optimized out at compile time */ + if (ZEND_MM_ALIGNMENT > sizeof(void*)) { + int extra = (ZEND_MM_ALIGNMENT - ((zend_uintptr_t)EG(argument_stack)->top & (ZEND_MM_ALIGNMENT - 1))) / sizeof(void*); + + if (UNEXPECTED(size + extra + ZEND_MM_ALIGNED_SIZE(sizeof(void*)) / sizeof(void*) > + EG(argument_stack)->end - EG(argument_stack)->top)) { + zend_vm_stack_extend(size TSRMLS_CC); + } else { + void **old_top = EG(argument_stack)->top; + + EG(argument_stack)->top += extra; + /* store old top on the stack */ + *EG(argument_stack)->top = (void*)old_top; + EG(argument_stack)->top += ZEND_MM_ALIGNED_SIZE(sizeof(void*)) / sizeof(void*); + } + } else { + ZEND_VM_STACK_GROW_IF_NEEDED((int)size); + } ret = (void*)EG(argument_stack)->top; EG(argument_stack)->top += size; return ret; } -static inline void zend_vm_stack_free(void *ptr TSRMLS_DC) +static inline void zend_vm_stack_free_int(void *ptr TSRMLS_DC) { - if (UNEXPECTED(EG(argument_stack)->elements == (void**)ptr)) { + if (UNEXPECTED(ZEND_VM_STACK_ELEMETS(EG(argument_stack)) == (void**)ptr)) { zend_vm_stack p = EG(argument_stack); EG(argument_stack) = p->prev; @@ -239,10 +258,28 @@ static inline void zend_vm_stack_free(void *ptr TSRMLS_DC) } } +static inline void zend_vm_stack_free(void *ptr TSRMLS_DC) +{ + if (UNEXPECTED(ZEND_VM_STACK_ELEMETS(EG(argument_stack)) == (void**)ptr)) { + zend_vm_stack p = EG(argument_stack); + + EG(argument_stack) = p->prev; + efree(p); + } else { + /* the following comparison must be optimized out at compile time */ + if (ZEND_MM_ALIGNMENT > sizeof(void*)) { + ptr = (void*)(((char*)ptr) - ZEND_MM_ALIGNED_SIZE(sizeof(void*))); + EG(argument_stack)->top = *(void***)ptr; + } else { + EG(argument_stack)->top = (void**)ptr; + } + } +} + static inline void** zend_vm_stack_push_args(int count TSRMLS_DC) { - if (UNEXPECTED(EG(argument_stack)->top - EG(argument_stack)->elements < count) || + if (UNEXPECTED(EG(argument_stack)->top - ZEND_VM_STACK_ELEMETS(EG(argument_stack)) < count) || UNEXPECTED(EG(argument_stack)->top == EG(argument_stack)->end)) { zend_vm_stack p = EG(argument_stack); @@ -253,14 +290,14 @@ static inline void** zend_vm_stack_push_args(int count TSRMLS_DC) while (count-- > 0) { void *data = *(--p->top); - if (UNEXPECTED(p->top == p->elements)) { + if (UNEXPECTED(p->top == ZEND_VM_STACK_ELEMETS(p))) { zend_vm_stack r = p; EG(argument_stack)->prev = p->prev; p = p->prev; efree(r); } - *(EG(argument_stack)->elements + count) = data; + *(ZEND_VM_STACK_ELEMETS(EG(argument_stack)) + count) = data; } return EG(argument_stack)->top++; } @@ -278,7 +315,7 @@ static inline void zend_vm_stack_clear_multiple(TSRMLS_D) *p = NULL; zval_ptr_dtor(&q); } - zend_vm_stack_free(p TSRMLS_CC); + zend_vm_stack_free_int(p TSRMLS_CC); } static inline zval** zend_vm_stack_get_arg(int requested_arg TSRMLS_DC) @@ -351,6 +388,8 @@ ZEND_API zval** zend_get_compiled_variable_value(const zend_execute_data *execut #define ZEND_USER_OPCODE_CONTINUE 0 /* execute next opcode */ #define ZEND_USER_OPCODE_RETURN 1 /* exit from executor (return from function) */ #define ZEND_USER_OPCODE_DISPATCH 2 /* call original opcode handler */ +#define ZEND_USER_OPCODE_ENTER 3 /* enter into new op_array without recursion */ +#define ZEND_USER_OPCODE_LEAVE 4 /* return to calling op_array within the same executor */ #define ZEND_USER_OPCODE_DISPATCH_TO 0x100 /* call original handler of returned opcode */ diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 42f5f50e7..88df13e2c 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute_API.c,v 1.331.2.20.2.24.2.78 2009/06/05 18:50:32 mattwil Exp $ */ +/* $Id: zend_execute_API.c 287466 2009-08-18 20:51:49Z stas $ */ #include <stdio.h> #include <signal.h> @@ -837,6 +837,12 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS for (i=0; i<fci->param_count; i++) { zval *param; + if(EX(function_state).function->type == ZEND_INTERNAL_FUNCTION + && !ARG_SHOULD_BE_SENT_BY_REF(EX(function_state).function, i + 1) + && PZVAL_IS_REF(*fci->params[i])) { + SEPARATE_ZVAL(fci->params[i]); + } + if (ARG_SHOULD_BE_SENT_BY_REF(EX(function_state).function, i + 1) && !PZVAL_IS_REF(*fci->params[i])) { @@ -1148,6 +1154,7 @@ ZEND_API int zend_eval_stringl(char *str, int str_len, zval *retval_ptr, char *s zval *local_retval_ptr=NULL; zval **original_return_value_ptr_ptr = EG(return_value_ptr_ptr); zend_op **original_opline_ptr = EG(opline_ptr); + int orig_interactive = CG(interactive); EG(return_value_ptr_ptr) = &local_retval_ptr; EG(active_op_array) = new_op_array; @@ -1155,9 +1162,11 @@ ZEND_API int zend_eval_stringl(char *str, int str_len, zval *retval_ptr, char *s if (!EG(active_symbol_table)) { zend_rebuild_symbol_table(TSRMLS_C); } + CG(interactive) = 0; zend_execute(new_op_array TSRMLS_CC); + CG(interactive) = orig_interactive; if (local_retval_ptr) { if (retval_ptr) { COPY_PZVAL_TO_ZVAL(*retval_ptr, local_retval_ptr); @@ -1216,6 +1225,7 @@ void execute_new_code(TSRMLS_D) /* {{{ */ { zend_op *opline, *end; zend_op *ret_opline; + int orig_interactive; if (!(CG(active_op_array)->fn_flags & ZEND_ACC_INTERACTIVE) || CG(active_op_array)->backpatch_count>0 @@ -1271,7 +1281,10 @@ void execute_new_code(TSRMLS_D) /* {{{ */ EG(return_value_ptr_ptr) = NULL; EG(active_op_array) = CG(active_op_array); + orig_interactive = CG(interactive); + CG(interactive) = 0; zend_execute(CG(active_op_array) TSRMLS_CC); + CG(interactive) = orig_interactive; if (EG(exception)) { zend_exception_error(EG(exception), E_ERROR TSRMLS_CC); diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c index a1a6fcd52..0a15a8cd0 100644 --- a/Zend/zend_extensions.c +++ b/Zend/zend_extensions.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_extensions.c,v 1.48.2.1.2.3.2.6 2009/04/08 13:26:35 mattwil Exp $ */ +/* $Id: zend_extensions.c 286859 2009-08-06 01:33:54Z scottmac $ */ #include "zend_extensions.h" @@ -218,67 +218,6 @@ ZEND_API zend_extension *zend_get_extension(const char *extension_name) } /* - * Support for dynamic loading of MH_BUNDLEs on Darwin / Mac OS X - * - */ - -#if HAVE_MACH_O_DYLD_H - -void *zend_mh_bundle_load(char* bundle_path) -{ - NSObjectFileImage bundle_image; - NSModule bundle_handle; - NSSymbol bundle_init_nssymbol; - void (*bundle_init)(void); - - if (NSCreateObjectFileImageFromFile(bundle_path, &bundle_image) != NSObjectFileImageSuccess) { - return NULL; - } - - bundle_handle = NSLinkModule(bundle_image, bundle_path, NSLINKMODULE_OPTION_NONE); - NSDestroyObjectFileImage(bundle_image); - - /* call the init function of the bundle */ - bundle_init_nssymbol = NSLookupSymbolInModule(bundle_handle, "__init"); - if (bundle_init_nssymbol != NULL) { - bundle_init = NSAddressOfSymbol(bundle_init_nssymbol); - bundle_init(); - } - - return bundle_handle; -} - -int zend_mh_bundle_unload(void *bundle_handle) -{ - NSSymbol bundle_fini_nssymbol; - void (*bundle_fini)(void); - - /* call the fini function of the bundle */ - bundle_fini_nssymbol = NSLookupSymbolInModule(bundle_handle, "__fini"); - if (bundle_fini_nssymbol != NULL) { - bundle_fini = NSAddressOfSymbol(bundle_fini_nssymbol); - bundle_fini(); - } - - return (int) NSUnLinkModule(bundle_handle, NULL); -} - -void *zend_mh_bundle_symbol(void *bundle_handle, const char *symbol_name) -{ - NSSymbol symbol; - symbol = NSLookupSymbolInModule(bundle_handle, symbol_name); - return NSAddressOfSymbol(symbol); -} - -const char *zend_mh_bundle_error(void) -{ - /* Witness the state of the art error reporting */ - return NULL; -} - -#endif /* HAVE_MACH_O_DYLD_H */ - -/* * Local variables: * tab-width: 4 * c-basic-offset: 4 diff --git a/Zend/zend_extensions.h b/Zend/zend_extensions.h index 1d8e3e2d3..449f37bb6 100644 --- a/Zend/zend_extensions.h +++ b/Zend/zend_extensions.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_extensions.h,v 1.67.2.3.2.3.2.9 2009/06/26 15:44:18 johannes Exp $ */ +/* $Id: zend_extensions.h 282827 2009-06-26 15:44:19Z johannes $ */ #ifndef ZEND_EXTENSIONS_H #define ZEND_EXTENSIONS_H diff --git a/Zend/zend_fast_cache.h b/Zend/zend_fast_cache.h index 66d6f59ae..e67c09b5a 100644 --- a/Zend/zend_fast_cache.h +++ b/Zend/zend_fast_cache.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_fast_cache.h,v 1.21.2.1.2.2.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_fast_cache.h 272370 2008-12-31 11:15:49Z sebastian $ */ #if 0 #ifndef ZEND_FAST_CACHE_H #define ZEND_FAST_CACHE_H diff --git a/Zend/zend_float.c b/Zend/zend_float.c index ab59c9159..263e0c7d2 100644 --- a/Zend/zend_float.c +++ b/Zend/zend_float.c @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_float.c,v 1.1.2.2 2009/03/18 11:53:10 dmitry Exp $ */ +/* $Id: zend_float.c 277413 2009-03-18 11:53:10Z dmitry $ */ #include "zend.h" #include "zend_compile.h" diff --git a/Zend/zend_float.h b/Zend/zend_float.h index 1c8c96ad9..45acbfd80 100644 --- a/Zend/zend_float.h +++ b/Zend/zend_float.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_float.h,v 1.2.2.5 2009/03/18 10:18:09 dmitry Exp $ */ +/* $Id: zend_float.h 277398 2009-03-18 10:18:10Z dmitry $ */ #ifndef ZEND_FLOAT_H #define ZEND_FLOAT_H diff --git a/Zend/zend_gc.c b/Zend/zend_gc.c index 52e37ddcd..0c3166815 100644 --- a/Zend/zend_gc.c +++ b/Zend/zend_gc.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_gc.c,v 1.1.2.22 2009/04/03 18:52:21 dmitry Exp $ */ +/* $Id: zend_gc.c 278220 2009-04-03 18:52:21Z dmitry $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_gc.h b/Zend/zend_gc.h index d4a9b2bc9..5b99e976f 100644 --- a/Zend/zend_gc.h +++ b/Zend/zend_gc.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_gc.h,v 1.1.2.9 2009/01/02 20:45:41 felipe Exp $ */ +/* $Id: zend_gc.h 272619 2009-01-02 20:45:43Z felipe $ */ #ifndef ZEND_GC_H #define ZEND_GC_H diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h index efda0010a..d199019a0 100644 --- a/Zend/zend_globals.h +++ b/Zend/zend_globals.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_globals.h,v 1.141.2.3.2.7.2.24 2009/03/25 15:23:17 dmitry Exp $ */ +/* $Id: zend_globals.h 277761 2009-03-25 15:23:58Z dmitry $ */ #ifndef ZEND_GLOBALS_H #define ZEND_GLOBALS_H diff --git a/Zend/zend_globals_macros.h b/Zend/zend_globals_macros.h index 0a3705dc2..3175fc530 100644 --- a/Zend/zend_globals_macros.h +++ b/Zend/zend_globals_macros.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_globals_macros.h,v 1.22.2.1.2.4.2.3 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_globals_macros.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_GLOBALS_MACROS_H #define ZEND_GLOBALS_MACROS_H diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index ba2b8312f..e62ecbbf4 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_hash.c,v 1.121.2.4.2.8.2.9 2009/06/07 19:28:15 mattwil Exp $ */ +/* $Id: zend_hash.c 281778 2009-06-07 19:28:15Z mattwil $ */ #include "zend.h" diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h index 8575f6bc5..a80cd563e 100644 --- a/Zend/zend_hash.h +++ b/Zend/zend_hash.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_hash.h,v 1.78.2.2.2.2.2.13 2009/05/25 01:18:00 pollita Exp $ */ +/* $Id: zend_hash.h 281050 2009-05-25 01:18:00Z pollita $ */ #ifndef ZEND_HASH_H #define ZEND_HASH_H diff --git a/Zend/zend_highlight.c b/Zend/zend_highlight.c index b2f2c2a43..60b2bc3da 100644 --- a/Zend/zend_highlight.c +++ b/Zend/zend_highlight.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_highlight.c,v 1.49.2.3.2.2.2.7 2009/05/05 01:35:44 mattwil Exp $ */ +/* $Id: zend_highlight.c 279941 2009-05-05 01:35:44Z mattwil $ */ #include "zend.h" #include <zend_language_parser.h> diff --git a/Zend/zend_highlight.h b/Zend/zend_highlight.h index 7b00895df..756175f39 100644 --- a/Zend/zend_highlight.h +++ b/Zend/zend_highlight.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_highlight.h,v 1.25.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_highlight.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_HIGHLIGHT_H #define ZEND_HIGHLIGHT_H diff --git a/Zend/zend_indent.c b/Zend/zend_indent.c index 9f5c33c0e..32d99cbfd 100644 --- a/Zend/zend_indent.c +++ b/Zend/zend_indent.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_indent.c,v 1.24.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_indent.c 272370 2008-12-31 11:15:49Z sebastian $ */ /* This indenter doesn't really work, it's here for no particular reason. */ diff --git a/Zend/zend_indent.h b/Zend/zend_indent.h index 76069e4cd..cc00d11c6 100644 --- a/Zend/zend_indent.h +++ b/Zend/zend_indent.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_indent.h,v 1.17.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_indent.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_INDENT_H #define ZEND_INDENT_H diff --git a/Zend/zend_ini.c b/Zend/zend_ini.c index 6147abf8f..6914d7bf1 100644 --- a/Zend/zend_ini.c +++ b/Zend/zend_ini.c @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini.c,v 1.39.2.2.2.18.2.18 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_ini.c 284254 2009-07-17 11:49:50Z jani $ */ #include "zend.h" #include "zend_qsort.h" @@ -46,15 +46,21 @@ static int zend_remove_ini_entries(zend_ini_entry *ini_entry, int *module_number static int zend_restore_ini_entry_cb(zend_ini_entry *ini_entry, int stage TSRMLS_DC) /* {{{ */ { + int result = FAILURE; + if (ini_entry->modified) { if (ini_entry->on_modify) { zend_try { /* even if on_modify bails out, we have to continue on with restoring, since there can be allocated variables that would be freed on MM shutdown and would lead to memory corruption later ini entry is modified again */ - ini_entry->on_modify(ini_entry, ini_entry->orig_value, ini_entry->orig_value_length, ini_entry->mh_arg1, ini_entry->mh_arg2, ini_entry->mh_arg3, stage TSRMLS_CC); + result = ini_entry->on_modify(ini_entry, ini_entry->orig_value, ini_entry->orig_value_length, ini_entry->mh_arg1, ini_entry->mh_arg2, ini_entry->mh_arg3, stage TSRMLS_CC); } zend_end_try(); } + if (stage == ZEND_INI_STAGE_RUNTIME && result == FAILURE) { + /* runtime failure is OK */ + return 1; + } if (ini_entry->value != ini_entry->orig_value) { efree(ini_entry->value); } @@ -309,8 +315,11 @@ ZEND_API int zend_restore_ini_entry(char *name, uint name_length, int stage) /* } if (EG(modified_ini_directives)) { - zend_restore_ini_entry_cb(ini_entry, stage TSRMLS_CC); - zend_hash_del(EG(modified_ini_directives), name, name_length); + if (zend_restore_ini_entry_cb(ini_entry, stage TSRMLS_CC) == 0) { + zend_hash_del(EG(modified_ini_directives), name, name_length); + } else { + return FAILURE; + } } return SUCCESS; diff --git a/Zend/zend_ini.h b/Zend/zend_ini.h index 23e89da39..7f866d9ae 100644 --- a/Zend/zend_ini.h +++ b/Zend/zend_ini.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini.h,v 1.34.2.1.2.6.2.7 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_ini.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_INI_H #define ZEND_INI_H diff --git a/Zend/zend_ini_parser.c b/Zend/zend_ini_parser.c index 75a6a86d3..cfaf58304 100644 --- a/Zend/zend_ini_parser.c +++ b/Zend/zend_ini_parser.c @@ -131,7 +131,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_parser.y,v 1.41.2.2.2.2.2.6 2008/12/31 11:13:47 sebastian Exp $ */ +/* $Id: zend_ini_parser.y 272368 2008-12-31 11:13:47Z sebastian $ */ #define DEBUG_CFG_PARSER 0 diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y index 42e292ea6..121236dca 100644 --- a/Zend/zend_ini_parser.y +++ b/Zend/zend_ini_parser.y @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_parser.y,v 1.41.2.2.2.2.2.6 2008/12/31 11:13:47 sebastian Exp $ */ +/* $Id: zend_ini_parser.y 272368 2008-12-31 11:13:47Z sebastian $ */ #define DEBUG_CFG_PARSER 0 diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c index f5cd73138..b09018e98 100644 --- a/Zend/zend_ini_scanner.c +++ b/Zend/zend_ini_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Tue May 19 08:53:54 2009 */ +/* Generated by re2c 0.13.5 on Fri Aug 7 18:29:12 2009 */ #line 1 "Zend/zend_ini_scanner.l" /* +----------------------------------------------------------------------+ @@ -22,7 +22,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_scanner.c,v 1.1.2.18 2009/05/19 15:59:36 shire Exp $ */ +/* $Id: zend_ini_scanner.c 286914 2009-08-07 15:45:56Z jani $ */ #include <errno.h> #include "zend.h" @@ -56,7 +56,9 @@ #define YYSTATE YYGETCONDITION() #define yytext ((char*)SCNG(yy_text)) #define yyleng SCNG(yy_leng) -#define yyless(x) YYCURSOR = yytext + x +#define yyless(x) do { YYCURSOR = (unsigned char*)yytext + x; \ + yyleng = (unsigned int)x; } while(0) + /* #define yymore() goto yymore_restart */ /* perform sanity check. If this message is triggered you should @@ -158,12 +160,28 @@ static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC) /* {{{ init_ini_scanner() */ -static void init_ini_scanner(TSRMLS_D) +static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC) { + /* Sanity check */ + if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW) { + zend_error(E_WARNING, "Invalid scanner mode"); + return FAILURE; + } + SCNG(lineno) = 1; - SCNG(scanner_mode) = ZEND_INI_SCANNER_NORMAL; + SCNG(scanner_mode) = scanner_mode; + SCNG(yy_in) = fh; + + if (fh != NULL) { + ini_filename = zend_strndup(fh->filename, strlen(fh->filename)); + } else { + ini_filename = NULL; + } + zend_stack_init(&SCNG(state_stack)); BEGIN(INITIAL); + + return SUCCESS; } /* }}} */ @@ -201,15 +219,14 @@ int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRML char *buf; size_t size; - if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE) { + if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE || + init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE + ) { return FAILURE; } - init_ini_scanner(TSRMLS_C); - SCNG(scanner_mode) = scanner_mode; - SCNG(yy_in) = fh; yy_scan_buffer(buf, size TSRMLS_CC); - ini_filename = zend_strndup(fh->filename, strlen(fh->filename)); + return SUCCESS; } /* }}} */ @@ -220,11 +237,12 @@ int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC) { int len = strlen(str); - init_ini_scanner(TSRMLS_C); - SCNG(scanner_mode) = scanner_mode; - SCNG(yy_in) = NULL; + if (init_ini_scanner(scanner_mode, NULL TSRMLS_CC) == FAILURE) { + return FAILURE; + } + yy_scan_buffer(str, len TSRMLS_CC); - ini_filename = NULL; + return SUCCESS; } /* }}} */ @@ -301,7 +319,7 @@ restart: } } -#line 305 "Zend/zend_ini_scanner.c" +#line 323 "Zend/zend_ini_scanner.c" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -338,38 +356,38 @@ restart: yyc_INITIAL: { static const unsigned char yybm[] = { - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 160, 0, 128, 128, 0, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 160, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 192, 128, 128, 192, 192, 128, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 128, 128, 128, 128, 128, 128, - 128, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 128, 128, 128, 128, 192, - 128, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 192, 0, 160, 160, 0, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 192, 128, 128, 160, 128, 160, 128, 160, + 128, 128, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 128, 160, 128, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 128, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 128, 128, 128, 128, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, }; YYDEBUG(0, *YYCURSOR); @@ -378,19 +396,27 @@ yyc_INITIAL: YYDEBUG(-1, yych); switch (yych) { case '\t': - case ' ': goto yy5; - case '\n': goto yy7; - case '\r': goto yy9; + case ' ': goto yy4; + case '\n': goto yy6; + case '\r': goto yy8; case '!': case '"': case '$': - case '%': case '&': - case '\'': case '(': case ')': + case '{': + case '|': + case '}': + case '~': goto yy9; + case '#': goto yy11; + case '%': + case '\'': + case '*': case '+': case ',': + case '-': + case '.': case '/': case ':': case '<': @@ -398,169 +424,106 @@ yyc_INITIAL: case '?': case '@': case ']': - case '^': - case '{': - case '|': - case '}': - case '~': goto yy10; - case '#': goto yy12; - case '*': - case '-': - case '.': goto yy13; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'p': - case 'q': - case 'r': - case 's': - case 'u': - case 'v': - case 'w': - case 'x': - case 'z': goto yy14; - case ';': goto yy15; - case '=': goto yy16; + case '^': goto yy12; + case ';': goto yy13; + case '=': goto yy15; case 'F': - case 'f': goto yy18; + case 'f': goto yy17; case 'N': - case 'n': goto yy19; + case 'n': goto yy18; case 'O': - case 'o': goto yy20; + case 'o': goto yy19; case 'T': - case 't': goto yy21; + case 't': goto yy20; case 'Y': - case 'y': goto yy22; - case '[': goto yy23; - default: goto yy3; + case 'y': goto yy21; + case '[': goto yy22; + default: goto yy2; } yy2: YYDEBUG(2, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy25; +yy3: + YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 389 "Zend/zend_ini_scanner.l" +#line 406 "Zend/zend_ini_scanner.l" { /* Get option name */ RETURN_TOKEN(TC_LABEL, yytext, yyleng); } -#line 486 "Zend/zend_ini_scanner.c" -yy3: - YYDEBUG(3, *YYCURSOR); - ++YYCURSOR; +#line 456 "Zend/zend_ini_scanner.c" +yy4: YYDEBUG(4, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 502 "Zend/zend_ini_scanner.l" - { - return 0; -} -#line 496 "Zend/zend_ini_scanner.c" -yy5: - YYDEBUG(5, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy63; -yy6: - YYDEBUG(6, *YYCURSOR); + goto yy66; +yy5: + YYDEBUG(5, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 474 "Zend/zend_ini_scanner.l" +#line 518 "Zend/zend_ini_scanner.l" { /* eat whitespace */ goto restart; } -#line 510 "Zend/zend_ini_scanner.c" +#line 470 "Zend/zend_ini_scanner.c" +yy6: + YYDEBUG(6, *YYCURSOR); + ++YYCURSOR; yy7: YYDEBUG(7, *YYCURSOR); - ++YYCURSOR; -yy8: - YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 479 "Zend/zend_ini_scanner.l" +#line 523 "Zend/zend_ini_scanner.l" { SCNG(lineno)++; return END_OF_LINE; } -#line 522 "Zend/zend_ini_scanner.c" +#line 482 "Zend/zend_ini_scanner.c" +yy8: + YYDEBUG(8, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy64; + goto yy7; yy9: YYDEBUG(9, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy61; - goto yy8; -yy10: - YYDEBUG(10, *YYCURSOR); ++YYCURSOR; - YYDEBUG(11, *YYCURSOR); + YYDEBUG(10, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 429 "Zend/zend_ini_scanner.l" +#line 446 "Zend/zend_ini_scanner.l" { /* Disallow these chars outside option values */ return yytext[0]; } -#line 537 "Zend/zend_ini_scanner.c" -yy12: - YYDEBUG(12, *YYCURSOR); +#line 497 "Zend/zend_ini_scanner.c" +yy11: + YYDEBUG(11, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - goto yy57; + goto yy56; +yy12: + YYDEBUG(12, *YYCURSOR); + yych = *++YYCURSOR; + goto yy25; yy13: YYDEBUG(13, *YYCURSOR); - yych = *++YYCURSOR; - goto yy29; -yy14: + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + goto yy51; YYDEBUG(14, *YYCURSOR); - yych = *++YYCURSOR; - goto yy29; + yyleng = YYCURSOR - SCNG(yy_text); +#line 546 "Zend/zend_ini_scanner.l" + { + return 0; +} +#line 518 "Zend/zend_ini_scanner.c" yy15: YYDEBUG(15, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - goto yy52; -yy16: - YYDEBUG(16, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy50; -yy17: - YYDEBUG(17, *YYCURSOR); + goto yy49; +yy16: + YYDEBUG(16, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 393 "Zend/zend_ini_scanner.l" +#line 410 "Zend/zend_ini_scanner.l" { /* Start option value */ if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { yy_push_state(ST_RAW TSRMLS_CC); @@ -569,66 +532,63 @@ yy17: } return '='; } -#line 573 "Zend/zend_ini_scanner.c" +#line 536 "Zend/zend_ini_scanner.c" +yy17: + YYDEBUG(17, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy45; + if (yych == 'a') goto yy45; + goto yy25; yy18: YYDEBUG(18, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy46; - if (yych == 'a') goto yy46; - goto yy29; -yy19: - YYDEBUG(19, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'O') goto yy42; - if (yych <= 'T') goto yy29; - goto yy43; + if (yych == 'O') goto yy41; + if (yych <= 'T') goto yy25; + goto yy42; } else { if (yych <= 'o') { - if (yych <= 'n') goto yy29; - goto yy42; + if (yych <= 'n') goto yy25; + goto yy41; } else { - if (yych == 'u') goto yy43; - goto yy29; + if (yych == 'u') goto yy42; + goto yy25; } } -yy20: - YYDEBUG(20, *YYCURSOR); +yy19: + YYDEBUG(19, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'F') goto yy37; - if (yych <= 'M') goto yy29; - goto yy31; + if (yych == 'F') goto yy36; + if (yych <= 'M') goto yy25; + goto yy30; } else { if (yych <= 'f') { - if (yych <= 'e') goto yy29; - goto yy37; + if (yych <= 'e') goto yy25; + goto yy36; } else { - if (yych == 'n') goto yy31; - goto yy29; + if (yych == 'n') goto yy30; + goto yy25; } } +yy20: + YYDEBUG(20, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy34; + if (yych == 'r') goto yy34; + goto yy25; yy21: YYDEBUG(21, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy35; - if (yych == 'r') goto yy35; - goto yy29; + if (yych == 'E') goto yy26; + if (yych == 'e') goto yy26; + goto yy25; yy22: YYDEBUG(22, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy30; - if (yych == 'e') goto yy30; - goto yy29; -yy23: - YYDEBUG(23, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 32) { - goto yy25; - } - YYDEBUG(24, *YYCURSOR); + YYDEBUG(23, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 327 "Zend/zend_ini_scanner.l" +#line 344 "Zend/zend_ini_scanner.l" { /* Section start */ /* Enter section data lookup state */ if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { @@ -638,19 +598,37 @@ yy23: } return TC_SECTION; } -#line 642 "Zend/zend_ini_scanner.c" -yy25: - YYDEBUG(25, *YYCURSOR); +#line 602 "Zend/zend_ini_scanner.c" +yy24: + YYDEBUG(24, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(26, *YYCURSOR); +yy25: + YYDEBUG(25, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy25; + goto yy24; } + if (yych == '[') goto yy27; + goto yy3; +yy26: + YYDEBUG(26, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy30; + if (yych == 's') goto yy30; + goto yy25; +yy27: YYDEBUG(27, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(28, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy27; + } + YYDEBUG(29, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 352 "Zend/zend_ini_scanner.l" +#line 369 "Zend/zend_ini_scanner.l" { /* Start of option with offset */ /* Eat trailing whitespace and [ */ EAT_TRAILING_WHITESPACE_EX('['); @@ -660,494 +638,496 @@ yy25: RETURN_TOKEN(TC_OFFSET, yytext, yyleng); } -#line 664 "Zend/zend_ini_scanner.c" -yy28: - YYDEBUG(28, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy29: - YYDEBUG(29, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy28; - } - if (yych == '[') goto yy25; - goto yy2; +#line 642 "Zend/zend_ini_scanner.c" yy30: YYDEBUG(30, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy31; - if (yych != 's') goto yy29; -yy31: - YYDEBUG(31, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 64) { - goto yy28; + if ((yych = *YYCURSOR) <= '$') { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy25; + goto yy32; + } else { + if (yych <= '\n') goto yy31; + if (yych <= '\f') goto yy25; + } + } else { + if (yych <= ' ') { + if (yych <= 0x1F) goto yy25; + goto yy32; + } else { + if (yych == '#') goto yy25; + } + } + } else { + if (yych <= ':') { + if (yych <= '&') { + if (yych <= '%') goto yy25; + } else { + if (yych <= '\'') goto yy25; + if (yych >= '*') goto yy25; + } + } else { + if (yych <= '=') { + if (yych == '<') goto yy25; + } else { + if (yych <= 'z') goto yy25; + if (yych >= 0x7F) goto yy25; + } + } } - if (yych == '[') goto yy25; - goto yy34; -yy32: - YYDEBUG(32, *YYCURSOR); +yy31: + YYDEBUG(31, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 381 "Zend/zend_ini_scanner.l" +#line 398 "Zend/zend_ini_scanner.l" { /* TRUE value (when used outside option value/offset this causes parse error!) */ RETURN_TOKEN(BOOL_TRUE, "1", 1); } -#line 697 "Zend/zend_ini_scanner.c" -yy33: - YYDEBUG(33, *YYCURSOR); +#line 687 "Zend/zend_ini_scanner.c" +yy32: + YYDEBUG(32, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; + YYDEBUG(33, *YYCURSOR); + if (yych == '\t') goto yy32; + if (yych == ' ') goto yy32; + goto yy31; yy34: YYDEBUG(34, *YYCURSOR); - if (yych == '\t') goto yy33; - if (yych == ' ') goto yy33; - goto yy32; + yych = *++YYCURSOR; + if (yych == 'U') goto yy35; + if (yych != 'u') goto yy25; yy35: YYDEBUG(35, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy36; - if (yych != 'u') goto yy29; + if (yych == 'E') goto yy30; + if (yych == 'e') goto yy30; + goto yy25; yy36: YYDEBUG(36, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy31; - if (yych == 'e') goto yy31; - goto yy29; + if (yych == 'F') goto yy37; + if (yych != 'f') goto yy25; yy37: YYDEBUG(37, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy38; - if (yych != 'f') goto yy29; -yy38: - YYDEBUG(38, *YYCURSOR); ++YYCURSOR; - if (yybm[0+(yych = *YYCURSOR)] & 64) { - goto yy28; + if ((yych = *YYCURSOR) <= '$') { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy25; + goto yy39; + } else { + if (yych <= '\n') goto yy38; + if (yych <= '\f') goto yy25; + } + } else { + if (yych <= ' ') { + if (yych <= 0x1F) goto yy25; + goto yy39; + } else { + if (yych == '#') goto yy25; + } + } + } else { + if (yych <= ':') { + if (yych <= '&') { + if (yych <= '%') goto yy25; + } else { + if (yych <= '\'') goto yy25; + if (yych >= '*') goto yy25; + } + } else { + if (yych <= '=') { + if (yych == '<') goto yy25; + } else { + if (yych <= 'z') goto yy25; + if (yych >= 0x7F) goto yy25; + } + } } - if (yych == '[') goto yy25; - goto yy41; -yy39: - YYDEBUG(39, *YYCURSOR); +yy38: + YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 385 "Zend/zend_ini_scanner.l" +#line 402 "Zend/zend_ini_scanner.l" { /* FALSE value (when used outside option value/offset this causes parse error!)*/ RETURN_TOKEN(BOOL_FALSE, "", 0); } -#line 739 "Zend/zend_ini_scanner.c" -yy40: - YYDEBUG(40, *YYCURSOR); +#line 757 "Zend/zend_ini_scanner.c" +yy39: + YYDEBUG(39, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; + YYDEBUG(40, *YYCURSOR); + if (yych == '\t') goto yy39; + if (yych == ' ') goto yy39; + goto yy38; yy41: YYDEBUG(41, *YYCURSOR); - if (yych == '\t') goto yy40; - if (yych == ' ') goto yy40; - goto yy39; -yy42: - YYDEBUG(42, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych <= '.') { - if (yych == '*') goto yy28; - if (yych <= ',') goto yy41; - goto yy28; + if (yych <= '&') { + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x08) goto yy25; + if (yych <= '\t') goto yy39; + goto yy38; + } else { + if (yych == '\r') goto yy38; + goto yy25; + } } else { - if (yych <= '9') { - if (yych <= '/') goto yy41; - goto yy28; + if (yych <= '#') { + if (yych <= ' ') goto yy39; + if (yych <= '"') goto yy38; + goto yy25; } else { - if (yych <= '@') goto yy41; - if (yych <= 'M') goto yy28; - goto yy45; + if (yych == '%') goto yy25; + goto yy38; } } } else { - if (yych <= '_') { - if (yych <= 'Z') goto yy28; - if (yych <= '[') goto yy25; - if (yych <= '^') goto yy41; - goto yy28; + if (yych <= '=') { + if (yych <= ':') { + if (yych <= '\'') goto yy25; + if (yych <= ')') goto yy38; + goto yy25; + } else { + if (yych == '<') goto yy25; + goto yy38; + } } else { if (yych <= 'm') { - if (yych <= '`') goto yy41; - goto yy28; + if (yych == 'N') goto yy44; + goto yy25; } else { - if (yych <= 'n') goto yy45; - if (yych <= 'z') goto yy28; - goto yy41; + if (yych <= 'n') goto yy44; + if (yych <= 'z') goto yy25; + if (yych <= '~') goto yy38; + goto yy25; } } } +yy42: + YYDEBUG(42, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy43; + if (yych != 'l') goto yy25; yy43: YYDEBUG(43, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy44; - if (yych != 'l') goto yy29; + if (yych == 'L') goto yy37; + if (yych == 'l') goto yy37; + goto yy25; yy44: YYDEBUG(44, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy38; - if (yych == 'l') goto yy38; - goto yy29; + if (yych == 'E') goto yy37; + if (yych == 'e') goto yy37; + goto yy25; yy45: YYDEBUG(45, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy38; - if (yych == 'e') goto yy38; - goto yy29; + if (yych == 'L') goto yy46; + if (yych != 'l') goto yy25; yy46: YYDEBUG(46, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy47; - if (yych != 'l') goto yy29; + if (yych == 'S') goto yy47; + if (yych != 's') goto yy25; yy47: YYDEBUG(47, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy48; - if (yych != 's') goto yy29; + if (yych == 'E') goto yy37; + if (yych == 'e') goto yy37; + goto yy25; yy48: YYDEBUG(48, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy38; - if (yych == 'e') goto yy38; - goto yy29; -yy49: - YYDEBUG(49, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; +yy49: + YYDEBUG(49, *YYCURSOR); + if (yych == '\t') goto yy48; + if (yych == ' ') goto yy48; + goto yy16; yy50: YYDEBUG(50, *YYCURSOR); - if (yych == '\t') goto yy49; - if (yych == ' ') goto yy49; - goto yy17; -yy51: - YYDEBUG(51, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy52: - YYDEBUG(52, *YYCURSOR); +yy51: + YYDEBUG(51, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy51; + goto yy50; } - if (yych >= '\r') goto yy55; + if (yych >= '\r') goto yy54; +yy52: + YYDEBUG(52, *YYCURSOR); + ++YYCURSOR; yy53: YYDEBUG(53, *YYCURSOR); - ++YYCURSOR; -yy54: - YYDEBUG(54, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 484 "Zend/zend_ini_scanner.l" +#line 528 "Zend/zend_ini_scanner.l" { /* Comment */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 851 "Zend/zend_ini_scanner.c" +#line 878 "Zend/zend_ini_scanner.c" +yy54: + YYDEBUG(54, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy52; + goto yy53; yy55: YYDEBUG(55, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy53; - goto yy54; + yyaccept = 1; + YYMARKER = ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; yy56: YYDEBUG(56, *YYCURSOR); + if (yych <= '&') { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy55; + } else { + if (yych <= '\n') goto yy61; + if (yych <= '\f') goto yy55; + goto yy63; + } + } else { + if (yych <= '#') { + if (yych <= 0x1F) goto yy55; + if (yych >= '#') goto yy55; + } else { + if (yych == '%') goto yy55; + } + } + } else { + if (yych <= '<') { + if (yych <= ')') { + if (yych <= '\'') goto yy55; + } else { + if (yych != ';') goto yy55; + } + } else { + if (yych <= '[') { + if (yych <= '=') goto yy57; + if (yych <= 'Z') goto yy55; + goto yy59; + } else { + if (yych <= 'z') goto yy55; + if (yych >= 0x7F) goto yy55; + } + } + } +yy57: + YYDEBUG(57, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy57: - YYDEBUG(57, *YYCURSOR); - if (yych == '\n') goto yy58; - if (yych == '\r') goto yy60; - goto yy56; -yy58: YYDEBUG(58, *YYCURSOR); - ++YYCURSOR; + if (yych == '\n') goto yy61; + if (yych == '\r') goto yy63; + goto yy57; yy59: YYDEBUG(59, *YYCURSOR); + yyaccept = 3; + YYMARKER = ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(60, *YYCURSOR); + if (yych <= '\f') { + if (yych <= 0x08) goto yy57; + if (yych <= '\t') goto yy59; + if (yych >= '\v') goto yy57; + } else { + if (yych <= '\r') goto yy63; + if (yych == ' ') goto yy59; + goto yy57; + } +yy61: + YYDEBUG(61, *YYCURSOR); + ++YYCURSOR; +yy62: + YYDEBUG(62, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 490 "Zend/zend_ini_scanner.l" +#line 534 "Zend/zend_ini_scanner.l" { /* #Comment */ zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno)); BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 880 "Zend/zend_ini_scanner.c" -yy60: - YYDEBUG(60, *YYCURSOR); +#line 965 "Zend/zend_ini_scanner.c" +yy63: + YYDEBUG(63, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy58; - goto yy59; -yy61: - YYDEBUG(61, *YYCURSOR); + if (yych == '\n') goto yy61; + goto yy62; +yy64: + YYDEBUG(64, *YYCURSOR); yych = *++YYCURSOR; - goto yy8; -yy62: - YYDEBUG(62, *YYCURSOR); + goto yy7; +yy65: + YYDEBUG(65, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy63: - YYDEBUG(63, *YYCURSOR); +yy66: + YYDEBUG(66, *YYCURSOR); if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x08) goto yy6; - if (yych <= '\t') goto yy62; - goto yy61; + if (yych <= 0x08) goto yy5; + if (yych <= '\t') goto yy65; + goto yy64; } else { - if (yych == '\r') goto yy64; - if (yych <= 0x1F) goto yy6; - goto yy62; + if (yych == '\r') goto yy67; + if (yych <= 0x1F) goto yy5; + goto yy65; } } else { if (yych <= ':') { - if (yych == '#') goto yy56; - goto yy6; + if (yych == '#') goto yy57; + goto yy5; } else { - if (yych <= ';') goto yy51; - if (yych == '=') goto yy49; - goto yy6; + if (yych <= ';') goto yy50; + if (yych == '=') goto yy48; + goto yy5; } } -yy64: - YYDEBUG(64, *YYCURSOR); +yy67: + YYDEBUG(67, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy61; - goto yy8; + if ((yych = *YYCURSOR) == '\n') goto yy64; + goto yy7; } /* *********************************** */ yyc_ST_DOUBLE_QUOTES: { static const unsigned char yybm[] = { - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 144, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 144, 16, 0, 16, 32, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 64, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, }; - YYDEBUG(65, *YYCURSOR); - YYFILL(3); - yych = *YYCURSOR; - if (yych <= '#') { - if (yych == '"') goto yy69; - } else { - if (yych <= '$') goto yy71; - if (yych == '\\') goto yy73; - } - YYDEBUG(67, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy77; -yy68: YYDEBUG(68, *YYCURSOR); + YYFILL(2); + yych = *YYCURSOR; + if (yych == '"') goto yy72; + if (yych == '$') goto yy74; + YYDEBUG(70, *YYCURSOR); + ++YYCURSOR; +yy71: + YYDEBUG(71, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 456 "Zend/zend_ini_scanner.l" +#line 478 "Zend/zend_ini_scanner.l" { /* Escape double quoted string contents */ - if(yyleng > 1 && yytext[yyleng-1] == '"' && yytext[yyleng-2] == '\\') { - yyless(yyleng-1); - yyleng--; + if (YYCURSOR > YYLIMIT) { + return 0; + } + + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '"': + if (YYCURSOR < YYLIMIT && YYCURSOR[-2] == '\\' && *YYCURSOR != '\r' && *YYCURSOR != '\n') { + continue; + } + break; + case '$': + if (*YYCURSOR == '{') { + break; + } + continue; + case '\\': + if (YYCURSOR < YYLIMIT && *YYCURSOR != '"') { + YYCURSOR++; + } + /* fall through */ + default: + continue; + } + + YYCURSOR--; + break; } + + yyleng = YYCURSOR - SCNG(yy_text); + zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); return TC_QUOTED_STRING; } -#line 986 "Zend/zend_ini_scanner.c" -yy69: - YYDEBUG(69, *YYCURSOR); +#line 1092 "Zend/zend_ini_scanner.c" +yy72: + YYDEBUG(72, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy91; -yy70: - YYDEBUG(70, *YYCURSOR); + goto yy78; +yy73: + YYDEBUG(73, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 465 "Zend/zend_ini_scanner.l" +#line 473 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string ends */ yy_pop_state(TSRMLS_C); return '"'; } -#line 1000 "Zend/zend_ini_scanner.c" -yy71: - YYDEBUG(71, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '\\') { - if (yych <= 0x00) goto yy72; - if (yych <= '[') goto yy76; - goto yy80; - } else { - if (yych == '{') goto yy88; - goto yy76; - } -yy72: - YYDEBUG(72, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 502 "Zend/zend_ini_scanner.l" - { - return 0; -} -#line 1019 "Zend/zend_ini_scanner.c" -yy73: - YYDEBUG(73, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych != '"') goto yy76; +#line 1106 "Zend/zend_ini_scanner.c" +yy74: YYDEBUG(74, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy75; - if (yych != '\r') goto yy76; -yy75: + if (yych != '{') goto yy71; YYDEBUG(75, *YYCURSOR); - YYCURSOR = YYMARKER; - if (yyaccept <= 0) { - goto yy68; - } else { - goto yy72; - } -yy76: - YYDEBUG(76, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy77: - YYDEBUG(77, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy76; - } - if (yych <= '#') goto yy68; - if (yych <= '$') goto yy79; - YYDEBUG(78, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yych == '"') goto yy85; - goto yy76; -yy79: - YYDEBUG(79, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yych <= '\\') { - if (yych <= 0x00) goto yy75; - if (yych <= '[') goto yy76; - } else { - if (yych == '{') goto yy75; - goto yy76; - } -yy80: - YYDEBUG(80, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 32) { - goto yy81; - } - if (yych == '\\') goto yy83; - goto yy76; -yy81: - YYDEBUG(81, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(82, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy81; - } - if (yych == '\\') goto yy86; - goto yy76; -yy83: - YYDEBUG(83, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(84, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy76; - } - if (yych <= '#') goto yy85; - if (yych <= '$') goto yy81; - goto yy83; -yy85: - YYDEBUG(85, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yych == '\n') goto yy68; - if (yych == '\r') goto yy68; - goto yy76; -yy86: - YYDEBUG(86, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy76; - } - if (yych <= '#') goto yy87; - if (yych <= '$') goto yy81; - goto yy83; -yy87: - YYDEBUG(87, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 32) { - goto yy81; - } - if (yych == '\\') goto yy83; - goto yy76; -yy88: - YYDEBUG(88, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(89, *YYCURSOR); + YYDEBUG(76, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 367 "Zend/zend_ini_scanner.l" +#line 384 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 1140 "Zend/zend_ini_scanner.c" -yy90: - YYDEBUG(90, *YYCURSOR); +#line 1120 "Zend/zend_ini_scanner.c" +yy77: + YYDEBUG(77, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy91: - YYDEBUG(91, *YYCURSOR); +yy78: + YYDEBUG(78, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy90; + goto yy77; } - goto yy70; + goto yy73; } /* *********************************** */ yyc_ST_OFFSET: @@ -1186,495 +1166,495 @@ yyc_ST_OFFSET: 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, }; - YYDEBUG(92, *YYCURSOR); + YYDEBUG(79, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= ',') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x08) goto yy94; - if (yych <= '\t') goto yy96; - goto yy97; + if (yych <= 0x08) goto yy81; + if (yych <= '\t') goto yy83; + goto yy84; } else { - if (yych == '\r') goto yy97; - if (yych >= ' ') goto yy96; + if (yych == '\r') goto yy84; + if (yych >= ' ') goto yy83; } } else { if (yych <= '#') { - if (yych == '"') goto yy99; + if (yych == '"') goto yy86; } else { - if (yych <= '$') goto yy101; - if (yych == '\'') goto yy102; + if (yych <= '$') goto yy88; + if (yych == '\'') goto yy89; } } } else { if (yych <= '@') { if (yych <= '/') { - if (yych <= '-') goto yy103; - if (yych <= '.') goto yy104; + if (yych <= '-') goto yy90; + if (yych <= '.') goto yy91; } else { - if (yych <= '9') goto yy105; - if (yych == ';') goto yy97; + if (yych <= '9') goto yy92; + if (yych == ';') goto yy84; } } else { if (yych <= '\\') { - if (yych <= 'Z') goto yy107; - if (yych >= '\\') goto yy109; + if (yych <= 'Z') goto yy94; + if (yych >= '\\') goto yy96; } else { - if (yych <= ']') goto yy110; - if (yych <= '`') goto yy94; - if (yych <= 'z') goto yy107; + if (yych <= ']') goto yy97; + if (yych <= '`') goto yy81; + if (yych <= 'z') goto yy94; } } } -yy94: - YYDEBUG(94, *YYCURSOR); +yy81: + YYDEBUG(81, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy113; -yy95: - YYDEBUG(95, *YYCURSOR); + goto yy100; +yy82: + YYDEBUG(82, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 447 "Zend/zend_ini_scanner.l" +#line 464 "Zend/zend_ini_scanner.l" { /* Get rest as section/offset value */ RETURN_TOKEN(TC_STRING, yytext, yyleng); } -#line 1243 "Zend/zend_ini_scanner.c" -yy96: - YYDEBUG(96, *YYCURSOR); +#line 1223 "Zend/zend_ini_scanner.c" +yy83: + YYDEBUG(83, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 128) { - goto yy139; + goto yy126; } - if (yych == '"') goto yy141; - if (yych == ']') goto yy142; - goto yy113; -yy97: - YYDEBUG(97, *YYCURSOR); + if (yych == '"') goto yy128; + if (yych == ']') goto yy129; + goto yy100; +yy84: + YYDEBUG(84, *YYCURSOR); ++YYCURSOR; -yy98: - YYDEBUG(98, *YYCURSOR); +yy85: + YYDEBUG(85, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 502 "Zend/zend_ini_scanner.l" +#line 546 "Zend/zend_ini_scanner.l" { return 0; } -#line 1264 "Zend/zend_ini_scanner.c" -yy99: - YYDEBUG(99, *YYCURSOR); +#line 1244 "Zend/zend_ini_scanner.c" +yy86: + YYDEBUG(86, *YYCURSOR); ++YYCURSOR; -yy100: - YYDEBUG(100, *YYCURSOR); +yy87: + YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 451 "Zend/zend_ini_scanner.l" +#line 468 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string start */ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); return '"'; } -#line 1276 "Zend/zend_ini_scanner.c" -yy101: - YYDEBUG(101, *YYCURSOR); +#line 1256 "Zend/zend_ini_scanner.c" +yy88: + YYDEBUG(88, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy98; - if (yych <= '[') goto yy112; - goto yy117; + if (yych <= 0x00) goto yy85; + if (yych <= '[') goto yy99; + goto yy104; } else { - if (yych == '{') goto yy137; - goto yy112; + if (yych == '{') goto yy124; + goto yy99; } -yy102: - YYDEBUG(102, *YYCURSOR); +yy89: + YYDEBUG(89, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 64) { - goto yy133; + goto yy120; } - goto yy98; -yy103: - YYDEBUG(103, *YYCURSOR); + goto yy85; +yy90: + YYDEBUG(90, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy113; - if (yych <= '9') goto yy131; - goto yy113; -yy104: - YYDEBUG(104, *YYCURSOR); + if (yych <= '/') goto yy100; + if (yych <= '9') goto yy118; + goto yy100; +yy91: + YYDEBUG(91, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy113; - if (yych <= '9') goto yy129; - goto yy113; -yy105: - YYDEBUG(105, *YYCURSOR); + if (yych <= '/') goto yy100; + if (yych <= '9') goto yy116; + goto yy100; +yy92: + YYDEBUG(92, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '\'') { if (yych <= '\r') { - if (yych == '\n') goto yy106; - if (yych <= '\f') goto yy113; + if (yych == '\n') goto yy93; + if (yych <= '\f') goto yy100; } else { - if (yych == '"') goto yy106; - if (yych <= '&') goto yy113; + if (yych == '"') goto yy93; + if (yych <= '&') goto yy100; } } else { if (yych <= '9') { - if (yych == '.') goto yy125; - if (yych <= '/') goto yy113; - goto yy127; + if (yych == '.') goto yy112; + if (yych <= '/') goto yy100; + goto yy114; } else { if (yych <= ';') { - if (yych <= ':') goto yy113; + if (yych <= ':') goto yy100; } else { - if (yych != ']') goto yy113; + if (yych != ']') goto yy100; } } } -yy106: - YYDEBUG(106, *YYCURSOR); +yy93: + YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 425 "Zend/zend_ini_scanner.l" +#line 442 "Zend/zend_ini_scanner.l" { /* Get number option value as string */ RETURN_TOKEN(TC_NUMBER, yytext, yyleng); } -#line 1342 "Zend/zend_ini_scanner.c" -yy107: - YYDEBUG(107, *YYCURSOR); +#line 1322 "Zend/zend_ini_scanner.c" +yy94: + YYDEBUG(94, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy123; + goto yy110; } if (yych <= '"') { if (yych <= '\f') { - if (yych != '\n') goto yy113; + if (yych != '\n') goto yy100; } else { - if (yych <= '\r') goto yy108; - if (yych <= '!') goto yy113; + if (yych <= '\r') goto yy95; + if (yych <= '!') goto yy100; } } else { if (yych <= ':') { - if (yych != '\'') goto yy113; + if (yych != '\'') goto yy100; } else { - if (yych <= ';') goto yy108; - if (yych != ']') goto yy113; + if (yych <= ';') goto yy95; + if (yych != ']') goto yy100; } } -yy108: - YYDEBUG(108, *YYCURSOR); +yy95: + YYDEBUG(95, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 421 "Zend/zend_ini_scanner.l" +#line 438 "Zend/zend_ini_scanner.l" { /* Get constant option value */ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); } -#line 1372 "Zend/zend_ini_scanner.c" -yy109: - YYDEBUG(109, *YYCURSOR); +#line 1352 "Zend/zend_ini_scanner.c" +yy96: + YYDEBUG(96, *YYCURSOR); yych = *++YYCURSOR; - goto yy112; -yy110: - YYDEBUG(110, *YYCURSOR); + goto yy99; +yy97: + YYDEBUG(97, *YYCURSOR); ++YYCURSOR; -yy111: - YYDEBUG(111, *YYCURSOR); +yy98: + YYDEBUG(98, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 362 "Zend/zend_ini_scanner.l" +#line 379 "Zend/zend_ini_scanner.l" { /* End of section or an option offset */ BEGIN(INITIAL); return ']'; } -#line 1388 "Zend/zend_ini_scanner.c" -yy112: - YYDEBUG(112, *YYCURSOR); +#line 1368 "Zend/zend_ini_scanner.c" +yy99: + YYDEBUG(99, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy113: - YYDEBUG(113, *YYCURSOR); +yy100: + YYDEBUG(100, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy112; + goto yy99; } - if (yych == '$') goto yy115; - if (yych != '\\') goto yy95; -yy114: - YYDEBUG(114, *YYCURSOR); + if (yych == '$') goto yy102; + if (yych != '\\') goto yy82; +yy101: + YYDEBUG(101, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy112; -yy115: - YYDEBUG(115, *YYCURSOR); + goto yy99; +yy102: + YYDEBUG(102, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy116; - if (yych <= '[') goto yy112; - goto yy117; + if (yych <= 0x00) goto yy103; + if (yych <= '[') goto yy99; + goto yy104; } else { - if (yych != '{') goto yy112; + if (yych != '{') goto yy99; } -yy116: - YYDEBUG(116, *YYCURSOR); +yy103: + YYDEBUG(103, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy95; + goto yy82; } else { - goto yy98; + goto yy85; } } else { if (yyaccept <= 2) { - goto yy106; + goto yy93; } else { - goto yy108; + goto yy95; } } -yy117: - YYDEBUG(117, *YYCURSOR); +yy104: + YYDEBUG(104, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 4) { - goto yy118; + goto yy105; } - if (yych == '\\') goto yy120; - goto yy112; -yy118: - YYDEBUG(118, *YYCURSOR); + if (yych == '\\') goto yy107; + goto yy99; +yy105: + YYDEBUG(105, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(119, *YYCURSOR); + YYDEBUG(106, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy118; + goto yy105; } - if (yych == '\\') goto yy122; - goto yy112; -yy120: - YYDEBUG(120, *YYCURSOR); + if (yych == '\\') goto yy109; + goto yy99; +yy107: + YYDEBUG(107, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(121, *YYCURSOR); + YYDEBUG(108, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy118; + goto yy105; } - if (yych == '\\') goto yy120; - goto yy112; -yy122: - YYDEBUG(122, *YYCURSOR); + if (yych == '\\') goto yy107; + goto yy99; +yy109: + YYDEBUG(109, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 4) { - goto yy118; + goto yy105; } - if (yych == '\\') goto yy120; - goto yy112; -yy123: - YYDEBUG(123, *YYCURSOR); + if (yych == '\\') goto yy107; + goto yy99; +yy110: + YYDEBUG(110, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(124, *YYCURSOR); + YYDEBUG(111, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy123; + goto yy110; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy108; - if (yych <= '\f') goto yy112; - goto yy108; + if (yych == '\n') goto yy95; + if (yych <= '\f') goto yy99; + goto yy95; } else { - if (yych == '"') goto yy108; - if (yych <= '#') goto yy112; - goto yy115; + if (yych == '"') goto yy95; + if (yych <= '#') goto yy99; + goto yy102; } } else { if (yych <= ';') { - if (yych == '\'') goto yy108; - if (yych <= ':') goto yy112; - goto yy108; + if (yych == '\'') goto yy95; + if (yych <= ':') goto yy99; + goto yy95; } else { - if (yych <= '[') goto yy112; - if (yych <= '\\') goto yy114; - if (yych <= ']') goto yy108; - goto yy112; + if (yych <= '[') goto yy99; + if (yych <= '\\') goto yy101; + if (yych <= ']') goto yy95; + goto yy99; } } -yy125: - YYDEBUG(125, *YYCURSOR); +yy112: + YYDEBUG(112, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(126, *YYCURSOR); + YYDEBUG(113, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy125; + goto yy112; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy106; - if (yych <= '\f') goto yy112; - goto yy106; + if (yych == '\n') goto yy93; + if (yych <= '\f') goto yy99; + goto yy93; } else { - if (yych == '"') goto yy106; - if (yych <= '#') goto yy112; - goto yy115; + if (yych == '"') goto yy93; + if (yych <= '#') goto yy99; + goto yy102; } } else { if (yych <= ';') { - if (yych == '\'') goto yy106; - if (yych <= ':') goto yy112; - goto yy106; + if (yych == '\'') goto yy93; + if (yych <= ':') goto yy99; + goto yy93; } else { - if (yych <= '[') goto yy112; - if (yych <= '\\') goto yy114; - if (yych <= ']') goto yy106; - goto yy112; + if (yych <= '[') goto yy99; + if (yych <= '\\') goto yy101; + if (yych <= ']') goto yy93; + goto yy99; } } -yy127: - YYDEBUG(127, *YYCURSOR); +yy114: + YYDEBUG(114, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(128, *YYCURSOR); + YYDEBUG(115, *YYCURSOR); if (yych <= '\'') { if (yych <= '!') { if (yych <= '\n') { - if (yych <= '\t') goto yy112; - goto yy106; + if (yych <= '\t') goto yy99; + goto yy93; } else { - if (yych == '\r') goto yy106; - goto yy112; + if (yych == '\r') goto yy93; + goto yy99; } } else { if (yych <= '#') { - if (yych <= '"') goto yy106; - goto yy112; + if (yych <= '"') goto yy93; + goto yy99; } else { - if (yych <= '$') goto yy115; - if (yych <= '&') goto yy112; - goto yy106; + if (yych <= '$') goto yy102; + if (yych <= '&') goto yy99; + goto yy93; } } } else { if (yych <= ':') { if (yych <= '.') { - if (yych <= '-') goto yy112; - goto yy125; - } else { - if (yych <= '/') goto yy112; - if (yych <= '9') goto yy127; + if (yych <= '-') goto yy99; goto yy112; + } else { + if (yych <= '/') goto yy99; + if (yych <= '9') goto yy114; + goto yy99; } } else { if (yych <= '[') { - if (yych <= ';') goto yy106; - goto yy112; + if (yych <= ';') goto yy93; + goto yy99; } else { - if (yych <= '\\') goto yy114; - if (yych <= ']') goto yy106; - goto yy112; + if (yych <= '\\') goto yy101; + if (yych <= ']') goto yy93; + goto yy99; } } } -yy129: - YYDEBUG(129, *YYCURSOR); +yy116: + YYDEBUG(116, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(130, *YYCURSOR); + YYDEBUG(117, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy106; - if (yych <= '\f') goto yy112; - goto yy106; + if (yych == '\n') goto yy93; + if (yych <= '\f') goto yy99; + goto yy93; } else { if (yych <= '"') { - if (yych <= '!') goto yy112; - goto yy106; + if (yych <= '!') goto yy99; + goto yy93; } else { - if (yych == '$') goto yy115; - goto yy112; + if (yych == '$') goto yy102; + goto yy99; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy106; - if (yych <= '/') goto yy112; - if (yych <= '9') goto yy129; - goto yy112; + if (yych <= '\'') goto yy93; + if (yych <= '/') goto yy99; + if (yych <= '9') goto yy116; + goto yy99; } else { if (yych <= '[') { - if (yych <= ';') goto yy106; - goto yy112; + if (yych <= ';') goto yy93; + goto yy99; } else { - if (yych <= '\\') goto yy114; - if (yych <= ']') goto yy106; - goto yy112; + if (yych <= '\\') goto yy101; + if (yych <= ']') goto yy93; + goto yy99; } } } -yy131: - YYDEBUG(131, *YYCURSOR); +yy118: + YYDEBUG(118, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(132, *YYCURSOR); + YYDEBUG(119, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy106; - if (yych <= '\f') goto yy112; - goto yy106; + if (yych == '\n') goto yy93; + if (yych <= '\f') goto yy99; + goto yy93; } else { if (yych <= '"') { - if (yych <= '!') goto yy112; - goto yy106; + if (yych <= '!') goto yy99; + goto yy93; } else { - if (yych == '$') goto yy115; - goto yy112; + if (yych == '$') goto yy102; + goto yy99; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy106; - if (yych <= '/') goto yy112; - if (yych <= '9') goto yy131; - goto yy112; + if (yych <= '\'') goto yy93; + if (yych <= '/') goto yy99; + if (yych <= '9') goto yy118; + goto yy99; } else { if (yych <= '[') { - if (yych <= ';') goto yy106; - goto yy112; + if (yych <= ';') goto yy93; + goto yy99; } else { - if (yych <= '\\') goto yy114; - if (yych <= ']') goto yy106; - goto yy112; + if (yych <= '\\') goto yy101; + if (yych <= ']') goto yy93; + goto yy99; } } } -yy133: - YYDEBUG(133, *YYCURSOR); +yy120: + YYDEBUG(120, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(134, *YYCURSOR); + YYDEBUG(121, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy133; + goto yy120; } - YYDEBUG(135, *YYCURSOR); + YYDEBUG(122, *YYCURSOR); ++YYCURSOR; - YYDEBUG(136, *YYCURSOR); + YYDEBUG(123, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 337 "Zend/zend_ini_scanner.l" +#line 354 "Zend/zend_ini_scanner.l" { /* Raw string */ /* Eat leading and trailing single quotes */ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { @@ -1683,59 +1663,59 @@ yy133: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 1687 "Zend/zend_ini_scanner.c" -yy137: - YYDEBUG(137, *YYCURSOR); +#line 1667 "Zend/zend_ini_scanner.c" +yy124: + YYDEBUG(124, *YYCURSOR); ++YYCURSOR; - YYDEBUG(138, *YYCURSOR); + YYDEBUG(125, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 367 "Zend/zend_ini_scanner.l" +#line 384 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 1698 "Zend/zend_ini_scanner.c" -yy139: - YYDEBUG(139, *YYCURSOR); +#line 1678 "Zend/zend_ini_scanner.c" +yy126: + YYDEBUG(126, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(140, *YYCURSOR); + YYDEBUG(127, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy139; + goto yy126; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy95; - if (yych <= '\f') goto yy112; - goto yy95; + if (yych == '\n') goto yy82; + if (yych <= '\f') goto yy99; + goto yy82; } else { - if (yych == '"') goto yy141; - if (yych <= '#') goto yy112; - goto yy115; + if (yych == '"') goto yy128; + if (yych <= '#') goto yy99; + goto yy102; } } else { if (yych <= ';') { - if (yych == '\'') goto yy95; - if (yych <= ':') goto yy112; - goto yy95; + if (yych == '\'') goto yy82; + if (yych <= ':') goto yy99; + goto yy82; } else { - if (yych <= '[') goto yy112; - if (yych <= '\\') goto yy114; - if (yych <= ']') goto yy142; - goto yy112; + if (yych <= '[') goto yy99; + if (yych <= '\\') goto yy101; + if (yych <= ']') goto yy129; + goto yy99; } } -yy141: - YYDEBUG(141, *YYCURSOR); +yy128: + YYDEBUG(128, *YYCURSOR); yych = *++YYCURSOR; - goto yy100; -yy142: - YYDEBUG(142, *YYCURSOR); + goto yy87; +yy129: + YYDEBUG(129, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy111; + goto yy98; } /* *********************************** */ yyc_ST_RAW: @@ -1748,7 +1728,7 @@ yyc_ST_RAW: 224, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 32, 160, 32, 160, 160, + 160, 160, 160, 32, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, @@ -1774,34 +1754,31 @@ yyc_ST_RAW: 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, }; - YYDEBUG(143, *YYCURSOR); + YYDEBUG(130, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x08) goto yy145; - if (yych <= '\t') goto yy147; - goto yy148; + if (yych <= '\r') { + if (yych <= '\t') { + if (yych >= '\t') goto yy134; } else { - if (yych == '\r') goto yy150; + if (yych <= '\n') goto yy135; + if (yych >= '\r') goto yy137; } } else { - if (yych <= ';') { - if (yych <= ' ') goto yy147; - if (yych >= ';') goto yy151; + if (yych <= ' ') { + if (yych >= ' ') goto yy134; } else { - if (yych == '=') goto yy153; + if (yych == ';') goto yy138; } } -yy145: - YYDEBUG(145, *YYCURSOR); + YYDEBUG(132, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy164; -yy146: - YYDEBUG(146, *YYCURSOR); + goto yy150; +yy133: + YYDEBUG(133, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 402 "Zend/zend_ini_scanner.l" +#line 419 "Zend/zend_ini_scanner.l" { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ /* Eat leading and trailing double quotes */ if (yytext[0] == '"' && yytext[yyleng - 1] == '"') { @@ -1810,129 +1787,120 @@ yy146: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 1814 "Zend/zend_ini_scanner.c" -yy147: - YYDEBUG(147, *YYCURSOR); +#line 1791 "Zend/zend_ini_scanner.c" +yy134: + YYDEBUG(134, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 64) { - goto yy160; + goto yy146; } if (yych <= '\f') { - if (yych == '\n') goto yy159; - goto yy164; + if (yych == '\n') goto yy145; + goto yy149; } else { - if (yych <= '\r') goto yy162; - if (yych == ';') goto yy154; - goto yy164; + if (yych <= '\r') goto yy148; + if (yych == ';') goto yy140; + goto yy149; } -yy148: - YYDEBUG(148, *YYCURSOR); +yy135: + YYDEBUG(135, *YYCURSOR); ++YYCURSOR; -yy149: - YYDEBUG(149, *YYCURSOR); +yy136: + YYDEBUG(136, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 415 "Zend/zend_ini_scanner.l" +#line 432 "Zend/zend_ini_scanner.l" { /* End of option value */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 1842 "Zend/zend_ini_scanner.c" -yy150: - YYDEBUG(150, *YYCURSOR); +#line 1819 "Zend/zend_ini_scanner.c" +yy137: + YYDEBUG(137, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy159; - goto yy149; -yy151: - YYDEBUG(151, *YYCURSOR); + if (yych == '\n') goto yy145; + goto yy136; +yy138: + YYDEBUG(138, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - goto yy155; -yy152: - YYDEBUG(152, *YYCURSOR); + goto yy141; + YYDEBUG(139, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 497 "Zend/zend_ini_scanner.l" +#line 541 "Zend/zend_ini_scanner.l" { /* End of option value (if EOF is reached before EOL */ BEGIN(INITIAL); return END_OF_LINE; } -#line 1861 "Zend/zend_ini_scanner.c" -yy153: - YYDEBUG(153, *YYCURSOR); - yych = *++YYCURSOR; - goto yy152; -yy154: - YYDEBUG(154, *YYCURSOR); +#line 1837 "Zend/zend_ini_scanner.c" +yy140: + YYDEBUG(140, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy155: - YYDEBUG(155, *YYCURSOR); +yy141: + YYDEBUG(141, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy154; + goto yy140; } - if (yych >= '\r') goto yy158; -yy156: - YYDEBUG(156, *YYCURSOR); + if (yych >= '\r') goto yy144; +yy142: + YYDEBUG(142, *YYCURSOR); ++YYCURSOR; -yy157: - YYDEBUG(157, *YYCURSOR); +yy143: + YYDEBUG(143, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 484 "Zend/zend_ini_scanner.l" +#line 528 "Zend/zend_ini_scanner.l" { /* Comment */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 1889 "Zend/zend_ini_scanner.c" -yy158: - YYDEBUG(158, *YYCURSOR); +#line 1861 "Zend/zend_ini_scanner.c" +yy144: + YYDEBUG(144, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy156; - goto yy157; -yy159: - YYDEBUG(159, *YYCURSOR); + if (yych == '\n') goto yy142; + goto yy143; +yy145: + YYDEBUG(145, *YYCURSOR); yych = *++YYCURSOR; - goto yy149; -yy160: - YYDEBUG(160, *YYCURSOR); + goto yy136; +yy146: + YYDEBUG(146, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(161, *YYCURSOR); + YYDEBUG(147, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy160; + goto yy146; } - if (yych <= '\r') { - if (yych == '\n') goto yy159; - if (yych <= '\f') goto yy163; + if (yych <= '\f') { + if (yych == '\n') goto yy145; + goto yy149; } else { - if (yych <= ';') { - if (yych <= ':') goto yy163; - goto yy154; - } else { - if (yych == '=') goto yy146; - goto yy163; - } + if (yych <= '\r') goto yy148; + if (yych == ';') goto yy140; + goto yy149; } -yy162: - YYDEBUG(162, *YYCURSOR); +yy148: + YYDEBUG(148, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy159; - goto yy149; -yy163: - YYDEBUG(163, *YYCURSOR); + if (yych == '\n') goto yy145; + goto yy136; +yy149: + YYDEBUG(149, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy164: - YYDEBUG(164, *YYCURSOR); +yy150: + YYDEBUG(150, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy163; + goto yy149; } - goto yy146; + goto yy133; } /* *********************************** */ yyc_ST_SECTION_RAW: @@ -1971,85 +1939,85 @@ yyc_ST_SECTION_RAW: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(165, *YYCURSOR); + YYDEBUG(151, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= '\f') { - if (yych == '\n') goto yy169; + if (yych == '\n') goto yy155; } else { - if (yych <= '\r') goto yy169; - if (yych == ']') goto yy171; + if (yych <= '\r') goto yy155; + if (yych == ']') goto yy157; } - YYDEBUG(167, *YYCURSOR); + YYDEBUG(153, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy178; -yy168: - YYDEBUG(168, *YYCURSOR); + goto yy164; +yy154: + YYDEBUG(154, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 411 "Zend/zend_ini_scanner.l" +#line 428 "Zend/zend_ini_scanner.l" { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 1995 "Zend/zend_ini_scanner.c" -yy169: - YYDEBUG(169, *YYCURSOR); +#line 1963 "Zend/zend_ini_scanner.c" +yy155: + YYDEBUG(155, *YYCURSOR); ++YYCURSOR; - YYDEBUG(170, *YYCURSOR); + YYDEBUG(156, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 502 "Zend/zend_ini_scanner.l" +#line 546 "Zend/zend_ini_scanner.l" { return 0; } -#line 2005 "Zend/zend_ini_scanner.c" -yy171: - YYDEBUG(171, *YYCURSOR); +#line 1973 "Zend/zend_ini_scanner.c" +yy157: + YYDEBUG(157, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy174; -yy172: - YYDEBUG(172, *YYCURSOR); + goto yy160; +yy158: + YYDEBUG(158, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 346 "Zend/zend_ini_scanner.l" +#line 363 "Zend/zend_ini_scanner.l" { /* End of section */ BEGIN(INITIAL); SCNG(lineno)++; return ']'; } -#line 2020 "Zend/zend_ini_scanner.c" -yy173: - YYDEBUG(173, *YYCURSOR); +#line 1988 "Zend/zend_ini_scanner.c" +yy159: + YYDEBUG(159, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy174: - YYDEBUG(174, *YYCURSOR); +yy160: + YYDEBUG(160, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy173; + goto yy159; } - if (yych == '\n') goto yy175; - if (yych == '\r') goto yy176; - goto yy172; -yy175: - YYDEBUG(175, *YYCURSOR); + if (yych == '\n') goto yy161; + if (yych == '\r') goto yy162; + goto yy158; +yy161: + YYDEBUG(161, *YYCURSOR); yych = *++YYCURSOR; - goto yy172; -yy176: - YYDEBUG(176, *YYCURSOR); + goto yy158; +yy162: + YYDEBUG(162, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy175; - goto yy172; -yy177: - YYDEBUG(177, *YYCURSOR); + if (yych == '\n') goto yy161; + goto yy158; +yy163: + YYDEBUG(163, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy178: - YYDEBUG(178, *YYCURSOR); +yy164: + YYDEBUG(164, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy177; + goto yy163; } - goto yy168; + goto yy154; } /* *********************************** */ yyc_ST_SECTION_VALUE: @@ -2088,522 +2056,522 @@ yyc_ST_SECTION_VALUE: 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, }; - YYDEBUG(179, *YYCURSOR); + YYDEBUG(165, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= ',') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x08) goto yy181; - if (yych <= '\t') goto yy183; - goto yy184; + if (yych <= 0x08) goto yy167; + if (yych <= '\t') goto yy169; + goto yy170; } else { - if (yych == '\r') goto yy184; - if (yych >= ' ') goto yy183; + if (yych == '\r') goto yy170; + if (yych >= ' ') goto yy169; } } else { if (yych <= '#') { - if (yych == '"') goto yy186; + if (yych == '"') goto yy172; } else { - if (yych <= '$') goto yy188; - if (yych == '\'') goto yy189; + if (yych <= '$') goto yy174; + if (yych == '\'') goto yy175; } } } else { if (yych <= '@') { if (yych <= '/') { - if (yych <= '-') goto yy190; - if (yych <= '.') goto yy191; + if (yych <= '-') goto yy176; + if (yych <= '.') goto yy177; } else { - if (yych <= '9') goto yy192; - if (yych == ';') goto yy184; + if (yych <= '9') goto yy178; + if (yych == ';') goto yy170; } } else { if (yych <= '\\') { - if (yych <= 'Z') goto yy194; - if (yych >= '\\') goto yy196; + if (yych <= 'Z') goto yy180; + if (yych >= '\\') goto yy182; } else { - if (yych <= ']') goto yy197; - if (yych <= '`') goto yy181; - if (yych <= 'z') goto yy194; + if (yych <= ']') goto yy183; + if (yych <= '`') goto yy167; + if (yych <= 'z') goto yy180; } } } -yy181: - YYDEBUG(181, *YYCURSOR); +yy167: + YYDEBUG(167, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy204; -yy182: - YYDEBUG(182, *YYCURSOR); + goto yy190; +yy168: + YYDEBUG(168, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 447 "Zend/zend_ini_scanner.l" +#line 464 "Zend/zend_ini_scanner.l" { /* Get rest as section/offset value */ RETURN_TOKEN(TC_STRING, yytext, yyleng); } -#line 2145 "Zend/zend_ini_scanner.c" -yy183: - YYDEBUG(183, *YYCURSOR); +#line 2113 "Zend/zend_ini_scanner.c" +yy169: + YYDEBUG(169, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy230; - goto yy204; + if (yych == '\t') goto yy216; + goto yy190; } else { - if (yych <= ' ') goto yy230; - if (yych == '"') goto yy232; - goto yy204; + if (yych <= ' ') goto yy216; + if (yych == '"') goto yy218; + goto yy190; } -yy184: - YYDEBUG(184, *YYCURSOR); +yy170: + YYDEBUG(170, *YYCURSOR); ++YYCURSOR; -yy185: - YYDEBUG(185, *YYCURSOR); +yy171: + YYDEBUG(171, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 502 "Zend/zend_ini_scanner.l" +#line 546 "Zend/zend_ini_scanner.l" { return 0; } -#line 2168 "Zend/zend_ini_scanner.c" -yy186: - YYDEBUG(186, *YYCURSOR); +#line 2136 "Zend/zend_ini_scanner.c" +yy172: + YYDEBUG(172, *YYCURSOR); ++YYCURSOR; -yy187: - YYDEBUG(187, *YYCURSOR); +yy173: + YYDEBUG(173, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 451 "Zend/zend_ini_scanner.l" +#line 468 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string start */ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); return '"'; } -#line 2180 "Zend/zend_ini_scanner.c" -yy188: - YYDEBUG(188, *YYCURSOR); +#line 2148 "Zend/zend_ini_scanner.c" +yy174: + YYDEBUG(174, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy185; - if (yych <= '[') goto yy203; - goto yy208; + if (yych <= 0x00) goto yy171; + if (yych <= '[') goto yy189; + goto yy194; } else { - if (yych == '{') goto yy228; - goto yy203; + if (yych == '{') goto yy214; + goto yy189; } -yy189: - YYDEBUG(189, *YYCURSOR); +yy175: + YYDEBUG(175, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 128) { - goto yy224; + goto yy210; } - goto yy185; -yy190: - YYDEBUG(190, *YYCURSOR); + goto yy171; +yy176: + YYDEBUG(176, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy204; - if (yych <= '9') goto yy222; - goto yy204; -yy191: - YYDEBUG(191, *YYCURSOR); + if (yych <= '/') goto yy190; + if (yych <= '9') goto yy208; + goto yy190; +yy177: + YYDEBUG(177, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy204; - if (yych <= '9') goto yy220; - goto yy204; -yy192: - YYDEBUG(192, *YYCURSOR); + if (yych <= '/') goto yy190; + if (yych <= '9') goto yy206; + goto yy190; +yy178: + YYDEBUG(178, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '\'') { if (yych <= '\r') { - if (yych == '\n') goto yy193; - if (yych <= '\f') goto yy204; + if (yych == '\n') goto yy179; + if (yych <= '\f') goto yy190; } else { - if (yych == '"') goto yy193; - if (yych <= '&') goto yy204; + if (yych == '"') goto yy179; + if (yych <= '&') goto yy190; } } else { if (yych <= '9') { - if (yych == '.') goto yy216; - if (yych <= '/') goto yy204; - goto yy218; + if (yych == '.') goto yy202; + if (yych <= '/') goto yy190; + goto yy204; } else { if (yych <= ';') { - if (yych <= ':') goto yy204; + if (yych <= ':') goto yy190; } else { - if (yych != ']') goto yy204; + if (yych != ']') goto yy190; } } } -yy193: - YYDEBUG(193, *YYCURSOR); +yy179: + YYDEBUG(179, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 425 "Zend/zend_ini_scanner.l" +#line 442 "Zend/zend_ini_scanner.l" { /* Get number option value as string */ RETURN_TOKEN(TC_NUMBER, yytext, yyleng); } -#line 2246 "Zend/zend_ini_scanner.c" -yy194: - YYDEBUG(194, *YYCURSOR); +#line 2214 "Zend/zend_ini_scanner.c" +yy180: + YYDEBUG(180, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 32) { - goto yy214; + goto yy200; } if (yych <= '"') { if (yych <= '\f') { - if (yych != '\n') goto yy204; + if (yych != '\n') goto yy190; } else { - if (yych <= '\r') goto yy195; - if (yych <= '!') goto yy204; + if (yych <= '\r') goto yy181; + if (yych <= '!') goto yy190; } } else { if (yych <= ':') { - if (yych != '\'') goto yy204; + if (yych != '\'') goto yy190; } else { - if (yych <= ';') goto yy195; - if (yych != ']') goto yy204; + if (yych <= ';') goto yy181; + if (yych != ']') goto yy190; } } -yy195: - YYDEBUG(195, *YYCURSOR); +yy181: + YYDEBUG(181, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 421 "Zend/zend_ini_scanner.l" +#line 438 "Zend/zend_ini_scanner.l" { /* Get constant option value */ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); } -#line 2276 "Zend/zend_ini_scanner.c" -yy196: - YYDEBUG(196, *YYCURSOR); +#line 2244 "Zend/zend_ini_scanner.c" +yy182: + YYDEBUG(182, *YYCURSOR); yych = *++YYCURSOR; - goto yy203; -yy197: - YYDEBUG(197, *YYCURSOR); + goto yy189; +yy183: + YYDEBUG(183, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy200; -yy198: - YYDEBUG(198, *YYCURSOR); + goto yy186; +yy184: + YYDEBUG(184, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 346 "Zend/zend_ini_scanner.l" +#line 363 "Zend/zend_ini_scanner.l" { /* End of section */ BEGIN(INITIAL); SCNG(lineno)++; return ']'; } -#line 2295 "Zend/zend_ini_scanner.c" -yy199: - YYDEBUG(199, *YYCURSOR); +#line 2263 "Zend/zend_ini_scanner.c" +yy185: + YYDEBUG(185, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy200: - YYDEBUG(200, *YYCURSOR); +yy186: + YYDEBUG(186, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy199; + goto yy185; } - if (yych == '\n') goto yy201; - if (yych == '\r') goto yy202; - goto yy198; -yy201: - YYDEBUG(201, *YYCURSOR); + if (yych == '\n') goto yy187; + if (yych == '\r') goto yy188; + goto yy184; +yy187: + YYDEBUG(187, *YYCURSOR); yych = *++YYCURSOR; - goto yy198; -yy202: - YYDEBUG(202, *YYCURSOR); + goto yy184; +yy188: + YYDEBUG(188, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy201; - goto yy198; -yy203: - YYDEBUG(203, *YYCURSOR); + if (yych == '\n') goto yy187; + goto yy184; +yy189: + YYDEBUG(189, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy204: - YYDEBUG(204, *YYCURSOR); +yy190: + YYDEBUG(190, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy203; + goto yy189; } - if (yych == '$') goto yy206; - if (yych != '\\') goto yy182; -yy205: - YYDEBUG(205, *YYCURSOR); + if (yych == '$') goto yy192; + if (yych != '\\') goto yy168; +yy191: + YYDEBUG(191, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy203; -yy206: - YYDEBUG(206, *YYCURSOR); + goto yy189; +yy192: + YYDEBUG(192, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy207; - if (yych <= '[') goto yy203; - goto yy208; + if (yych <= 0x00) goto yy193; + if (yych <= '[') goto yy189; + goto yy194; } else { - if (yych != '{') goto yy203; + if (yych != '{') goto yy189; } -yy207: - YYDEBUG(207, *YYCURSOR); +yy193: + YYDEBUG(193, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy182; + goto yy168; } else { - goto yy185; + goto yy171; } } else { if (yyaccept <= 2) { - goto yy193; + goto yy179; } else { - goto yy195; + goto yy181; } } -yy208: - YYDEBUG(208, *YYCURSOR); +yy194: + YYDEBUG(194, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy209; + goto yy195; } - if (yych == '\\') goto yy211; - goto yy203; -yy209: - YYDEBUG(209, *YYCURSOR); + if (yych == '\\') goto yy197; + goto yy189; +yy195: + YYDEBUG(195, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(210, *YYCURSOR); + YYDEBUG(196, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy209; + goto yy195; } - if (yych == '\\') goto yy213; - goto yy203; -yy211: - YYDEBUG(211, *YYCURSOR); + if (yych == '\\') goto yy199; + goto yy189; +yy197: + YYDEBUG(197, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(212, *YYCURSOR); + YYDEBUG(198, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy209; + goto yy195; } - if (yych == '\\') goto yy211; - goto yy203; -yy213: - YYDEBUG(213, *YYCURSOR); + if (yych == '\\') goto yy197; + goto yy189; +yy199: + YYDEBUG(199, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy209; + goto yy195; } - if (yych == '\\') goto yy211; - goto yy203; -yy214: - YYDEBUG(214, *YYCURSOR); + if (yych == '\\') goto yy197; + goto yy189; +yy200: + YYDEBUG(200, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(215, *YYCURSOR); + YYDEBUG(201, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy214; + goto yy200; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy195; - if (yych <= '\f') goto yy203; - goto yy195; + if (yych == '\n') goto yy181; + if (yych <= '\f') goto yy189; + goto yy181; } else { - if (yych == '"') goto yy195; - if (yych <= '#') goto yy203; - goto yy206; + if (yych == '"') goto yy181; + if (yych <= '#') goto yy189; + goto yy192; } } else { if (yych <= ';') { - if (yych == '\'') goto yy195; - if (yych <= ':') goto yy203; - goto yy195; + if (yych == '\'') goto yy181; + if (yych <= ':') goto yy189; + goto yy181; } else { - if (yych <= '[') goto yy203; - if (yych <= '\\') goto yy205; - if (yych <= ']') goto yy195; - goto yy203; + if (yych <= '[') goto yy189; + if (yych <= '\\') goto yy191; + if (yych <= ']') goto yy181; + goto yy189; } } -yy216: - YYDEBUG(216, *YYCURSOR); +yy202: + YYDEBUG(202, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(217, *YYCURSOR); + YYDEBUG(203, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy216; + goto yy202; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy193; - if (yych <= '\f') goto yy203; - goto yy193; + if (yych == '\n') goto yy179; + if (yych <= '\f') goto yy189; + goto yy179; } else { - if (yych == '"') goto yy193; - if (yych <= '#') goto yy203; - goto yy206; + if (yych == '"') goto yy179; + if (yych <= '#') goto yy189; + goto yy192; } } else { if (yych <= ';') { - if (yych == '\'') goto yy193; - if (yych <= ':') goto yy203; - goto yy193; + if (yych == '\'') goto yy179; + if (yych <= ':') goto yy189; + goto yy179; } else { - if (yych <= '[') goto yy203; - if (yych <= '\\') goto yy205; - if (yych <= ']') goto yy193; - goto yy203; + if (yych <= '[') goto yy189; + if (yych <= '\\') goto yy191; + if (yych <= ']') goto yy179; + goto yy189; } } -yy218: - YYDEBUG(218, *YYCURSOR); +yy204: + YYDEBUG(204, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(219, *YYCURSOR); + YYDEBUG(205, *YYCURSOR); if (yych <= '\'') { if (yych <= '!') { if (yych <= '\n') { - if (yych <= '\t') goto yy203; - goto yy193; + if (yych <= '\t') goto yy189; + goto yy179; } else { - if (yych == '\r') goto yy193; - goto yy203; + if (yych == '\r') goto yy179; + goto yy189; } } else { if (yych <= '#') { - if (yych <= '"') goto yy193; - goto yy203; + if (yych <= '"') goto yy179; + goto yy189; } else { - if (yych <= '$') goto yy206; - if (yych <= '&') goto yy203; - goto yy193; + if (yych <= '$') goto yy192; + if (yych <= '&') goto yy189; + goto yy179; } } } else { if (yych <= ':') { if (yych <= '.') { - if (yych <= '-') goto yy203; - goto yy216; + if (yych <= '-') goto yy189; + goto yy202; } else { - if (yych <= '/') goto yy203; - if (yych <= '9') goto yy218; - goto yy203; + if (yych <= '/') goto yy189; + if (yych <= '9') goto yy204; + goto yy189; } } else { if (yych <= '[') { - if (yych <= ';') goto yy193; - goto yy203; + if (yych <= ';') goto yy179; + goto yy189; } else { - if (yych <= '\\') goto yy205; - if (yych <= ']') goto yy193; - goto yy203; + if (yych <= '\\') goto yy191; + if (yych <= ']') goto yy179; + goto yy189; } } } -yy220: - YYDEBUG(220, *YYCURSOR); +yy206: + YYDEBUG(206, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(221, *YYCURSOR); + YYDEBUG(207, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy193; - if (yych <= '\f') goto yy203; - goto yy193; + if (yych == '\n') goto yy179; + if (yych <= '\f') goto yy189; + goto yy179; } else { if (yych <= '"') { - if (yych <= '!') goto yy203; - goto yy193; + if (yych <= '!') goto yy189; + goto yy179; } else { - if (yych == '$') goto yy206; - goto yy203; + if (yych == '$') goto yy192; + goto yy189; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy193; - if (yych <= '/') goto yy203; - if (yych <= '9') goto yy220; - goto yy203; + if (yych <= '\'') goto yy179; + if (yych <= '/') goto yy189; + if (yych <= '9') goto yy206; + goto yy189; } else { if (yych <= '[') { - if (yych <= ';') goto yy193; - goto yy203; + if (yych <= ';') goto yy179; + goto yy189; } else { - if (yych <= '\\') goto yy205; - if (yych <= ']') goto yy193; - goto yy203; + if (yych <= '\\') goto yy191; + if (yych <= ']') goto yy179; + goto yy189; } } } -yy222: - YYDEBUG(222, *YYCURSOR); +yy208: + YYDEBUG(208, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(223, *YYCURSOR); + YYDEBUG(209, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy193; - if (yych <= '\f') goto yy203; - goto yy193; + if (yych == '\n') goto yy179; + if (yych <= '\f') goto yy189; + goto yy179; } else { if (yych <= '"') { - if (yych <= '!') goto yy203; - goto yy193; + if (yych <= '!') goto yy189; + goto yy179; } else { - if (yych == '$') goto yy206; - goto yy203; + if (yych == '$') goto yy192; + goto yy189; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy193; - if (yych <= '/') goto yy203; - if (yych <= '9') goto yy222; - goto yy203; + if (yych <= '\'') goto yy179; + if (yych <= '/') goto yy189; + if (yych <= '9') goto yy208; + goto yy189; } else { if (yych <= '[') { - if (yych <= ';') goto yy193; - goto yy203; + if (yych <= ';') goto yy179; + goto yy189; } else { - if (yych <= '\\') goto yy205; - if (yych <= ']') goto yy193; - goto yy203; + if (yych <= '\\') goto yy191; + if (yych <= ']') goto yy179; + goto yy189; } } } -yy224: - YYDEBUG(224, *YYCURSOR); +yy210: + YYDEBUG(210, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(225, *YYCURSOR); + YYDEBUG(211, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy224; + goto yy210; } - YYDEBUG(226, *YYCURSOR); + YYDEBUG(212, *YYCURSOR); ++YYCURSOR; - YYDEBUG(227, *YYCURSOR); + YYDEBUG(213, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 337 "Zend/zend_ini_scanner.l" +#line 354 "Zend/zend_ini_scanner.l" { /* Raw string */ /* Eat leading and trailing single quotes */ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { @@ -2612,65 +2580,65 @@ yy224: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 2616 "Zend/zend_ini_scanner.c" -yy228: - YYDEBUG(228, *YYCURSOR); +#line 2584 "Zend/zend_ini_scanner.c" +yy214: + YYDEBUG(214, *YYCURSOR); ++YYCURSOR; - YYDEBUG(229, *YYCURSOR); + YYDEBUG(215, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 367 "Zend/zend_ini_scanner.l" +#line 384 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 2627 "Zend/zend_ini_scanner.c" -yy230: - YYDEBUG(230, *YYCURSOR); +#line 2595 "Zend/zend_ini_scanner.c" +yy216: + YYDEBUG(216, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(231, *YYCURSOR); + YYDEBUG(217, *YYCURSOR); if (yych <= '"') { if (yych <= '\f') { - if (yych <= 0x08) goto yy203; - if (yych <= '\t') goto yy230; - if (yych <= '\n') goto yy182; - goto yy203; + if (yych <= 0x08) goto yy189; + if (yych <= '\t') goto yy216; + if (yych <= '\n') goto yy168; + goto yy189; } else { if (yych <= 0x1F) { - if (yych <= '\r') goto yy182; - goto yy203; + if (yych <= '\r') goto yy168; + goto yy189; } else { - if (yych <= ' ') goto yy230; - if (yych <= '!') goto yy203; + if (yych <= ' ') goto yy216; + if (yych <= '!') goto yy189; } } } else { if (yych <= ':') { if (yych <= '$') { - if (yych <= '#') goto yy203; - goto yy206; + if (yych <= '#') goto yy189; + goto yy192; } else { - if (yych == '\'') goto yy182; - goto yy203; + if (yych == '\'') goto yy168; + goto yy189; } } else { if (yych <= '[') { - if (yych <= ';') goto yy182; - goto yy203; + if (yych <= ';') goto yy168; + goto yy189; } else { - if (yych <= '\\') goto yy205; - if (yych <= ']') goto yy182; - goto yy203; + if (yych <= '\\') goto yy191; + if (yych <= ']') goto yy168; + goto yy189; } } } -yy232: - YYDEBUG(232, *YYCURSOR); +yy218: + YYDEBUG(218, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy187; + goto yy173; } /* *********************************** */ yyc_ST_VALUE: @@ -2709,27 +2677,27 @@ yyc_ST_VALUE: 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, }; - YYDEBUG(233, *YYCURSOR); + YYDEBUG(219, *YYCURSOR); YYFILL(6); yych = *YYCURSOR; YYDEBUG(-1, yych); switch (yych) { - case 0x00: goto yy235; + case 0x00: goto yy221; case '\t': - case ' ': goto yy239; - case '\n': goto yy241; - case '\r': goto yy243; + case ' ': goto yy225; + case '\n': goto yy227; + case '\r': goto yy229; case '!': case '&': case '(': case ')': case '|': - case '~': goto yy244; - case '"': goto yy246; - case '$': goto yy248; - case '\'': goto yy249; - case '-': goto yy250; - case '.': goto yy251; + case '~': goto yy230; + case '"': goto yy232; + case '$': goto yy234; + case '\'': goto yy235; + case '-': goto yy236; + case '.': goto yy237; case '0': case '1': case '2': @@ -2739,9 +2707,9 @@ yyc_ST_VALUE: case '6': case '7': case '8': - case '9': goto yy252; - case ';': goto yy254; - case '=': goto yy255; + case '9': goto yy238; + case ';': goto yy240; + case '=': goto yy241; case 'A': case 'B': case 'C': @@ -2783,1531 +2751,1531 @@ yyc_ST_VALUE: case 'v': case 'w': case 'x': - case 'z': goto yy257; + case 'z': goto yy243; case 'F': - case 'f': goto yy259; + case 'f': goto yy245; case 'N': - case 'n': goto yy260; + case 'n': goto yy246; case 'O': - case 'o': goto yy261; + case 'o': goto yy247; case 'T': - case 't': goto yy262; + case 't': goto yy248; case 'Y': - case 'y': goto yy263; - default: goto yy237; + case 'y': goto yy249; + default: goto yy223; } -yy235: - YYDEBUG(235, *YYCURSOR); +yy221: + YYDEBUG(221, *YYCURSOR); ++YYCURSOR; -yy236: - YYDEBUG(236, *YYCURSOR); +yy222: + YYDEBUG(222, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 497 "Zend/zend_ini_scanner.l" +#line 541 "Zend/zend_ini_scanner.l" { /* End of option value (if EOF is reached before EOL */ BEGIN(INITIAL); return END_OF_LINE; } -#line 2811 "Zend/zend_ini_scanner.c" -yy237: - YYDEBUG(237, *YYCURSOR); +#line 2779 "Zend/zend_ini_scanner.c" +yy223: + YYDEBUG(223, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy265; -yy238: - YYDEBUG(238, *YYCURSOR); + goto yy251; +yy224: + YYDEBUG(224, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 443 "Zend/zend_ini_scanner.l" +#line 460 "Zend/zend_ini_scanner.l" { /* Get everything else as option/offset value */ RETURN_TOKEN(TC_STRING, yytext, yyleng); } -#line 2824 "Zend/zend_ini_scanner.c" -yy239: - YYDEBUG(239, *YYCURSOR); +#line 2792 "Zend/zend_ini_scanner.c" +yy225: + YYDEBUG(225, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - goto yy315; -yy240: - YYDEBUG(240, *YYCURSOR); + goto yy301; +yy226: + YYDEBUG(226, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 470 "Zend/zend_ini_scanner.l" +#line 514 "Zend/zend_ini_scanner.l" { RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng); } -#line 2837 "Zend/zend_ini_scanner.c" -yy241: - YYDEBUG(241, *YYCURSOR); +#line 2805 "Zend/zend_ini_scanner.c" +yy227: + YYDEBUG(227, *YYCURSOR); ++YYCURSOR; -yy242: - YYDEBUG(242, *YYCURSOR); +yy228: + YYDEBUG(228, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 415 "Zend/zend_ini_scanner.l" +#line 432 "Zend/zend_ini_scanner.l" { /* End of option value */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 2850 "Zend/zend_ini_scanner.c" -yy243: - YYDEBUG(243, *YYCURSOR); +#line 2818 "Zend/zend_ini_scanner.c" +yy229: + YYDEBUG(229, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy313; - goto yy242; -yy244: - YYDEBUG(244, *YYCURSOR); + if (yych == '\n') goto yy299; + goto yy228; +yy230: + YYDEBUG(230, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy312; -yy245: - YYDEBUG(245, *YYCURSOR); + goto yy298; +yy231: + YYDEBUG(231, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 433 "Zend/zend_ini_scanner.l" +#line 450 "Zend/zend_ini_scanner.l" { /* Boolean operators */ return yytext[0]; } -#line 2868 "Zend/zend_ini_scanner.c" -yy246: - YYDEBUG(246, *YYCURSOR); +#line 2836 "Zend/zend_ini_scanner.c" +yy232: + YYDEBUG(232, *YYCURSOR); ++YYCURSOR; -yy247: - YYDEBUG(247, *YYCURSOR); +yy233: + YYDEBUG(233, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 451 "Zend/zend_ini_scanner.l" +#line 468 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string start */ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); return '"'; } -#line 2880 "Zend/zend_ini_scanner.c" -yy248: - YYDEBUG(248, *YYCURSOR); +#line 2848 "Zend/zend_ini_scanner.c" +yy234: + YYDEBUG(234, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy236; - if (yych <= '[') goto yy264; - goto yy271; + if (yych <= 0x00) goto yy222; + if (yych <= '[') goto yy250; + goto yy257; } else { - if (yych == '{') goto yy309; - goto yy264; + if (yych == '{') goto yy295; + goto yy250; } -yy249: - YYDEBUG(249, *YYCURSOR); +yy235: + YYDEBUG(235, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 128) { - goto yy305; + goto yy291; } - goto yy236; -yy250: - YYDEBUG(250, *YYCURSOR); + goto yy222; +yy236: + YYDEBUG(236, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy265; - if (yych <= '9') goto yy303; - goto yy265; -yy251: - YYDEBUG(251, *YYCURSOR); + if (yych <= '/') goto yy251; + if (yych <= '9') goto yy289; + goto yy251; +yy237: + YYDEBUG(237, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy265; - if (yych <= '9') goto yy301; - goto yy265; -yy252: - YYDEBUG(252, *YYCURSOR); + if (yych <= '/') goto yy251; + if (yych <= '9') goto yy287; + goto yy251; +yy238: + YYDEBUG(238, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych >= 0x01) goto yy265; + if (yych >= 0x01) goto yy251; } else { - if (yych <= '\n') goto yy253; - if (yych <= '\f') goto yy265; + if (yych <= '\n') goto yy239; + if (yych <= '\f') goto yy251; } } else { if (yych <= '%') { - if (yych <= 0x1F) goto yy265; - if (yych >= '#') goto yy265; + if (yych <= 0x1F) goto yy251; + if (yych >= '#') goto yy251; } else { - if (yych <= ')') goto yy253; - if (yych <= '-') goto yy265; - goto yy297; + if (yych <= ')') goto yy239; + if (yych <= '-') goto yy251; + goto yy283; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '/') goto yy265; - goto yy299; + if (yych <= '/') goto yy251; + goto yy285; } else { - if (yych != ';') goto yy265; + if (yych != ';') goto yy251; } } else { if (yych <= '|') { - if (yych <= '=') goto yy253; - if (yych <= '{') goto yy265; + if (yych <= '=') goto yy239; + if (yych <= '{') goto yy251; } else { - if (yych != '~') goto yy265; + if (yych != '~') goto yy251; } } } -yy253: - YYDEBUG(253, *YYCURSOR); +yy239: + YYDEBUG(239, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 425 "Zend/zend_ini_scanner.l" +#line 442 "Zend/zend_ini_scanner.l" { /* Get number option value as string */ RETURN_TOKEN(TC_NUMBER, yytext, yyleng); } -#line 2960 "Zend/zend_ini_scanner.c" -yy254: - YYDEBUG(254, *YYCURSOR); +#line 2928 "Zend/zend_ini_scanner.c" +yy240: + YYDEBUG(240, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - goto yy293; -yy255: - YYDEBUG(255, *YYCURSOR); + goto yy279; +yy241: + YYDEBUG(241, *YYCURSOR); ++YYCURSOR; - YYDEBUG(256, *YYCURSOR); + YYDEBUG(242, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 437 "Zend/zend_ini_scanner.l" +#line 454 "Zend/zend_ini_scanner.l" { /* Make = used in option value to trigger error */ yyless(0); BEGIN(INITIAL); return END_OF_LINE; } -#line 2977 "Zend/zend_ini_scanner.c" -yy257: - YYDEBUG(257, *YYCURSOR); +#line 2945 "Zend/zend_ini_scanner.c" +yy243: + YYDEBUG(243, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 4) { - goto yy266; + goto yy252; } if (yych <= ')') { if (yych <= '\f') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - if (yych >= '\v') goto yy265; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + if (yych >= '\v') goto yy251; } else { if (yych <= 0x1F) { - if (yych >= 0x0E) goto yy265; + if (yych >= 0x0E) goto yy251; } else { - if (yych <= '"') goto yy258; - if (yych <= '%') goto yy265; + if (yych <= '"') goto yy244; + if (yych <= '%') goto yy251; } } } else { if (yych <= '=') { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; } else { if (yych <= '|') { - if (yych <= '{') goto yy265; + if (yych <= '{') goto yy251; } else { - if (yych != '~') goto yy265; + if (yych != '~') goto yy251; } } } -yy258: - YYDEBUG(258, *YYCURSOR); +yy244: + YYDEBUG(244, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 421 "Zend/zend_ini_scanner.l" +#line 438 "Zend/zend_ini_scanner.l" { /* Get constant option value */ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); } -#line 3017 "Zend/zend_ini_scanner.c" -yy259: - YYDEBUG(259, *YYCURSOR); +#line 2985 "Zend/zend_ini_scanner.c" +yy245: + YYDEBUG(245, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '<') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '/') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - goto yy265; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + goto yy251; } else { - if (yych <= '9') goto yy266; - if (yych == ';') goto yy258; - goto yy265; + if (yych <= '9') goto yy252; + if (yych == ';') goto yy244; + goto yy251; } } } else { if (yych <= '`') { if (yych <= 'A') { - if (yych <= '=') goto yy258; - if (yych <= '@') goto yy265; - goto yy289; + if (yych <= '=') goto yy244; + if (yych <= '@') goto yy251; + goto yy275; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych <= 'a') goto yy289; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych <= 'a') goto yy275; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy260: - YYDEBUG(260, *YYCURSOR); +yy246: + YYDEBUG(246, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { if (yych <= '%') { if (yych <= '\f') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - if (yych <= '\n') goto yy258; - goto yy265; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + if (yych <= '\n') goto yy244; + goto yy251; } else { - if (yych <= '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - if (yych <= '"') goto yy258; - goto yy265; + if (yych <= '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + if (yych <= '"') goto yy244; + goto yy251; } } else { if (yych <= ':') { - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - if (yych <= '9') goto yy266; - goto yy265; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + if (yych <= '9') goto yy252; + goto yy251; } else { if (yych <= '<') { - if (yych <= ';') goto yy258; - goto yy265; + if (yych <= ';') goto yy244; + goto yy251; } else { - if (yych <= '=') goto yy258; - if (yych <= '@') goto yy265; - goto yy266; + if (yych <= '=') goto yy244; + if (yych <= '@') goto yy251; + goto yy252; } } } } else { if (yych <= 'n') { if (yych <= 'Z') { - if (yych <= 'O') goto yy285; - if (yych == 'U') goto yy286; - goto yy266; + if (yych <= 'O') goto yy271; + if (yych == 'U') goto yy272; + goto yy252; } else { - if (yych == '_') goto yy266; - if (yych <= '`') goto yy265; - goto yy266; + if (yych == '_') goto yy252; + if (yych <= '`') goto yy251; + goto yy252; } } else { if (yych <= 'z') { - if (yych <= 'o') goto yy285; - if (yych == 'u') goto yy286; - goto yy266; + if (yych <= 'o') goto yy271; + if (yych == 'u') goto yy272; + goto yy252; } else { if (yych <= '|') { - if (yych <= '{') goto yy265; - goto yy258; + if (yych <= '{') goto yy251; + goto yy244; } else { - if (yych == '~') goto yy258; - goto yy265; + if (yych == '~') goto yy244; + goto yy251; } } } } -yy261: - YYDEBUG(261, *YYCURSOR); +yy247: + YYDEBUG(247, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'E') { if (yych <= '%') { if (yych <= '\f') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - if (yych <= '\n') goto yy258; - goto yy265; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + if (yych <= '\n') goto yy244; + goto yy251; } else { - if (yych <= '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - if (yych <= '"') goto yy258; - goto yy265; + if (yych <= '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + if (yych <= '"') goto yy244; + goto yy251; } } else { if (yych <= ':') { - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - if (yych <= '9') goto yy266; - goto yy265; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + if (yych <= '9') goto yy252; + goto yy251; } else { if (yych <= '<') { - if (yych <= ';') goto yy258; - goto yy265; + if (yych <= ';') goto yy244; + goto yy251; } else { - if (yych <= '=') goto yy258; - if (yych <= '@') goto yy265; - goto yy266; + if (yych <= '=') goto yy244; + if (yych <= '@') goto yy251; + goto yy252; } } } } else { if (yych <= 'e') { if (yych <= 'Z') { - if (yych <= 'F') goto yy280; - if (yych == 'N') goto yy274; - goto yy266; + if (yych <= 'F') goto yy266; + if (yych == 'N') goto yy260; + goto yy252; } else { - if (yych == '_') goto yy266; - if (yych <= '`') goto yy265; - goto yy266; + if (yych == '_') goto yy252; + if (yych <= '`') goto yy251; + goto yy252; } } else { if (yych <= 'z') { - if (yych <= 'f') goto yy280; - if (yych == 'n') goto yy274; - goto yy266; + if (yych <= 'f') goto yy266; + if (yych == 'n') goto yy260; + goto yy252; } else { if (yych <= '|') { - if (yych <= '{') goto yy265; - goto yy258; + if (yych <= '{') goto yy251; + goto yy244; } else { - if (yych == '~') goto yy258; - goto yy265; + if (yych == '~') goto yy244; + goto yy251; } } } } -yy262: - YYDEBUG(262, *YYCURSOR); +yy248: + YYDEBUG(248, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'R') { - if (yych <= '@') goto yy265; - if (yych <= 'Q') goto yy266; - goto yy278; + if (yych <= '@') goto yy251; + if (yych <= 'Q') goto yy252; + goto yy264; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'r') goto yy278; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'r') goto yy264; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy263: - YYDEBUG(263, *YYCURSOR); +yy249: + YYDEBUG(249, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy265; - if (yych <= 'D') goto yy266; - goto yy268; + if (yych <= '@') goto yy251; + if (yych <= 'D') goto yy252; + goto yy254; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'e') goto yy268; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'e') goto yy254; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy264: - YYDEBUG(264, *YYCURSOR); +yy250: + YYDEBUG(250, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy265: - YYDEBUG(265, *YYCURSOR); +yy251: + YYDEBUG(251, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy264; + goto yy250; } - if (yych == '$') goto yy269; - goto yy238; -yy266: - YYDEBUG(266, *YYCURSOR); + if (yych == '$') goto yy255; + goto yy224; +yy252: + YYDEBUG(252, *YYCURSOR); yyaccept = 4; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(267, *YYCURSOR); + YYDEBUG(253, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy266; + goto yy252; } if (yych <= '%') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy258; - goto yy264; + if (yych <= 0x00) goto yy244; + goto yy250; } else { - if (yych <= '\n') goto yy258; - if (yych <= '\f') goto yy264; - goto yy258; + if (yych <= '\n') goto yy244; + if (yych <= '\f') goto yy250; + goto yy244; } } else { if (yych <= '"') { - if (yych <= 0x1F) goto yy264; - goto yy258; + if (yych <= 0x1F) goto yy250; + goto yy244; } else { - if (yych == '$') goto yy269; - goto yy264; + if (yych == '$') goto yy255; + goto yy250; } } } else { if (yych <= '=') { if (yych <= ':') { - if (yych <= ')') goto yy258; - goto yy264; + if (yych <= ')') goto yy244; + goto yy250; } else { - if (yych == '<') goto yy264; - goto yy258; + if (yych == '<') goto yy250; + goto yy244; } } else { if (yych <= '|') { - if (yych <= '{') goto yy264; - goto yy258; + if (yych <= '{') goto yy250; + goto yy244; } else { - if (yych == '~') goto yy258; - goto yy264; + if (yych == '~') goto yy244; + goto yy250; } } } -yy268: - YYDEBUG(268, *YYCURSOR); +yy254: + YYDEBUG(254, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'S') { - if (yych <= '@') goto yy265; - if (yych <= 'R') goto yy266; - goto yy274; + if (yych <= '@') goto yy251; + if (yych <= 'R') goto yy252; + goto yy260; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 's') goto yy274; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 's') goto yy260; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy269: - YYDEBUG(269, *YYCURSOR); +yy255: + YYDEBUG(255, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy270; - if (yych <= '[') goto yy264; - goto yy271; + if (yych <= 0x00) goto yy256; + if (yych <= '[') goto yy250; + goto yy257; } else { - if (yych != '{') goto yy264; + if (yych != '{') goto yy250; } -yy270: - YYDEBUG(270, *YYCURSOR); +yy256: + YYDEBUG(256, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 3) { if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy238; + goto yy224; } else { - goto yy240; + goto yy226; } } else { if (yyaccept <= 2) { - goto yy236; + goto yy222; } else { - goto yy253; + goto yy239; } } } else { if (yyaccept <= 5) { if (yyaccept <= 4) { - goto yy258; + goto yy244; } else { - goto yy275; + goto yy261; } } else { - goto yy282; + goto yy268; } } -yy271: - YYDEBUG(271, *YYCURSOR); +yy257: + YYDEBUG(257, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy272; + goto yy258; } - goto yy264; -yy272: - YYDEBUG(272, *YYCURSOR); + goto yy250; +yy258: + YYDEBUG(258, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(273, *YYCURSOR); + YYDEBUG(259, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy272; + goto yy258; } - if (yych <= 0x00) goto yy238; - if (yych == '\\') goto yy271; - goto yy264; -yy274: - YYDEBUG(274, *YYCURSOR); + if (yych <= 0x00) goto yy224; + if (yych == '\\') goto yy257; + goto yy250; +yy260: + YYDEBUG(260, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy276; + goto yy262; } if (yych <= ';') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x00) goto yy275; - if (yych <= '\t') goto yy265; + if (yych <= 0x00) goto yy261; + if (yych <= '\t') goto yy251; } else { - if (yych != '\r') goto yy265; + if (yych != '\r') goto yy251; } } else { if (yych <= ')') { - if (yych <= '"') goto yy275; - if (yych <= '%') goto yy265; + if (yych <= '"') goto yy261; + if (yych <= '%') goto yy251; } else { - if (yych <= '/') goto yy265; - if (yych <= '9') goto yy266; - if (yych <= ':') goto yy265; + if (yych <= '/') goto yy251; + if (yych <= '9') goto yy252; + if (yych <= ':') goto yy251; } } } else { if (yych <= '_') { if (yych <= '@') { - if (yych != '=') goto yy265; + if (yych != '=') goto yy251; } else { - if (yych <= 'Z') goto yy266; - if (yych <= '^') goto yy265; - goto yy266; + if (yych <= 'Z') goto yy252; + if (yych <= '^') goto yy251; + goto yy252; } } else { if (yych <= '{') { - if (yych <= '`') goto yy265; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych <= '`') goto yy251; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych >= 0x7F) goto yy265; + if (yych == '}') goto yy251; + if (yych >= 0x7F) goto yy251; } } } -yy275: - YYDEBUG(275, *YYCURSOR); +yy261: + YYDEBUG(261, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 381 "Zend/zend_ini_scanner.l" +#line 398 "Zend/zend_ini_scanner.l" { /* TRUE value (when used outside option value/offset this causes parse error!) */ RETURN_TOKEN(BOOL_TRUE, "1", 1); } -#line 3513 "Zend/zend_ini_scanner.c" -yy276: - YYDEBUG(276, *YYCURSOR); +#line 3481 "Zend/zend_ini_scanner.c" +yy262: + YYDEBUG(262, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(277, *YYCURSOR); + YYDEBUG(263, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy276; + goto yy262; } - goto yy275; -yy278: - YYDEBUG(278, *YYCURSOR); + goto yy261; +yy264: + YYDEBUG(264, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'U') { - if (yych <= '@') goto yy265; - if (yych <= 'T') goto yy266; + if (yych <= '@') goto yy251; + if (yych <= 'T') goto yy252; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'u') goto yy279; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'u') goto yy265; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy279: - YYDEBUG(279, *YYCURSOR); +yy265: + YYDEBUG(265, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy265; - if (yych <= 'D') goto yy266; - goto yy274; + if (yych <= '@') goto yy251; + if (yych <= 'D') goto yy252; + goto yy260; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'e') goto yy274; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'e') goto yy260; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy280: - YYDEBUG(280, *YYCURSOR); +yy266: + YYDEBUG(266, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'F') { - if (yych <= '@') goto yy265; - if (yych <= 'E') goto yy266; + if (yych <= '@') goto yy251; + if (yych <= 'E') goto yy252; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'f') goto yy281; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'f') goto yy267; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy281: - YYDEBUG(281, *YYCURSOR); +yy267: + YYDEBUG(267, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 4) { - goto yy266; + goto yy252; } if (yych <= '%') { if (yych <= '\f') { if (yych <= 0x08) { - if (yych >= 0x01) goto yy265; + if (yych >= 0x01) goto yy251; } else { - if (yych <= '\t') goto yy283; - if (yych >= '\v') goto yy265; + if (yych <= '\t') goto yy269; + if (yych >= '\v') goto yy251; } } else { if (yych <= 0x1F) { - if (yych >= 0x0E) goto yy265; + if (yych >= 0x0E) goto yy251; } else { - if (yych <= ' ') goto yy283; - if (yych >= '#') goto yy265; + if (yych <= ' ') goto yy269; + if (yych >= '#') goto yy251; } } } else { if (yych <= '=') { if (yych <= ':') { - if (yych >= '*') goto yy265; + if (yych >= '*') goto yy251; } else { - if (yych == '<') goto yy265; + if (yych == '<') goto yy251; } } else { if (yych <= '|') { - if (yych <= '{') goto yy265; + if (yych <= '{') goto yy251; } else { - if (yych != '~') goto yy265; + if (yych != '~') goto yy251; } } } -yy282: - YYDEBUG(282, *YYCURSOR); +yy268: + YYDEBUG(268, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 385 "Zend/zend_ini_scanner.l" +#line 402 "Zend/zend_ini_scanner.l" { /* FALSE value (when used outside option value/offset this causes parse error!)*/ RETURN_TOKEN(BOOL_FALSE, "", 0); } -#line 3717 "Zend/zend_ini_scanner.c" -yy283: - YYDEBUG(283, *YYCURSOR); +#line 3685 "Zend/zend_ini_scanner.c" +yy269: + YYDEBUG(269, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(284, *YYCURSOR); - if (yych == '\t') goto yy283; - if (yych == ' ') goto yy283; - goto yy282; -yy285: - YYDEBUG(285, *YYCURSOR); + YYDEBUG(270, *YYCURSOR); + if (yych == '\t') goto yy269; + if (yych == ' ') goto yy269; + goto yy268; +yy271: + YYDEBUG(271, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '<') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x00) goto yy282; - if (yych <= 0x08) goto yy265; - if (yych <= '\t') goto yy283; - goto yy282; + if (yych <= 0x00) goto yy268; + if (yych <= 0x08) goto yy251; + if (yych <= '\t') goto yy269; + goto yy268; } else { - if (yych == '\r') goto yy282; - if (yych <= 0x1F) goto yy265; - goto yy283; + if (yych == '\r') goto yy268; + if (yych <= 0x1F) goto yy251; + goto yy269; } } else { if (yych <= '/') { - if (yych <= '"') goto yy282; - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy282; - goto yy265; + if (yych <= '"') goto yy268; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy268; + goto yy251; } else { - if (yych <= '9') goto yy266; - if (yych == ';') goto yy282; - goto yy265; + if (yych <= '9') goto yy252; + if (yych == ';') goto yy268; + goto yy251; } } } else { if (yych <= '`') { if (yych <= 'N') { - if (yych <= '=') goto yy282; - if (yych <= '@') goto yy265; - if (yych <= 'M') goto yy266; - goto yy288; + if (yych <= '=') goto yy268; + if (yych <= '@') goto yy251; + if (yych <= 'M') goto yy252; + goto yy274; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'n') goto yy288; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'n') goto yy274; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy282; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy268; + goto yy251; } } } -yy286: - YYDEBUG(286, *YYCURSOR); +yy272: + YYDEBUG(272, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'L') { - if (yych <= '@') goto yy265; - if (yych <= 'K') goto yy266; + if (yych <= '@') goto yy251; + if (yych <= 'K') goto yy252; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'l') goto yy287; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'l') goto yy273; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy287: - YYDEBUG(287, *YYCURSOR); +yy273: + YYDEBUG(273, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'L') { - if (yych <= '@') goto yy265; - if (yych <= 'K') goto yy266; - goto yy281; + if (yych <= '@') goto yy251; + if (yych <= 'K') goto yy252; + goto yy267; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'l') goto yy281; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'l') goto yy267; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy288: - YYDEBUG(288, *YYCURSOR); +yy274: + YYDEBUG(274, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy265; - if (yych <= 'D') goto yy266; - goto yy281; + if (yych <= '@') goto yy251; + if (yych <= 'D') goto yy252; + goto yy267; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'e') goto yy281; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'e') goto yy267; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy289: - YYDEBUG(289, *YYCURSOR); +yy275: + YYDEBUG(275, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'L') { - if (yych <= '@') goto yy265; - if (yych <= 'K') goto yy266; + if (yych <= '@') goto yy251; + if (yych <= 'K') goto yy252; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'l') goto yy290; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'l') goto yy276; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy290: - YYDEBUG(290, *YYCURSOR); +yy276: + YYDEBUG(276, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'S') { - if (yych <= '@') goto yy265; - if (yych <= 'R') goto yy266; + if (yych <= '@') goto yy251; + if (yych <= 'R') goto yy252; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 's') goto yy291; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 's') goto yy277; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy291: - YYDEBUG(291, *YYCURSOR); +yy277: + YYDEBUG(277, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy258; - if (yych <= 0x08) goto yy265; - goto yy258; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy251; + goto yy244; } else { - if (yych == '\r') goto yy258; - if (yych <= 0x1F) goto yy265; - goto yy258; + if (yych == '\r') goto yy244; + if (yych <= 0x1F) goto yy251; + goto yy244; } } else { if (yych <= '9') { - if (yych <= '%') goto yy265; - if (yych <= ')') goto yy258; - if (yych <= '/') goto yy265; - goto yy266; + if (yych <= '%') goto yy251; + if (yych <= ')') goto yy244; + if (yych <= '/') goto yy251; + goto yy252; } else { - if (yych == ';') goto yy258; - if (yych <= '<') goto yy265; - goto yy258; + if (yych == ';') goto yy244; + if (yych <= '<') goto yy251; + goto yy244; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy265; - if (yych <= 'D') goto yy266; - goto yy281; + if (yych <= '@') goto yy251; + if (yych <= 'D') goto yy252; + goto yy267; } else { - if (yych <= 'Z') goto yy266; - if (yych == '_') goto yy266; - goto yy265; + if (yych <= 'Z') goto yy252; + if (yych == '_') goto yy252; + goto yy251; } } else { if (yych <= '{') { - if (yych == 'e') goto yy281; - if (yych <= 'z') goto yy266; - goto yy265; + if (yych == 'e') goto yy267; + if (yych <= 'z') goto yy252; + goto yy251; } else { - if (yych == '}') goto yy265; - if (yych <= '~') goto yy258; - goto yy265; + if (yych == '}') goto yy251; + if (yych <= '~') goto yy244; + goto yy251; } } } -yy292: - YYDEBUG(292, *YYCURSOR); +yy278: + YYDEBUG(278, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy293: - YYDEBUG(293, *YYCURSOR); +yy279: + YYDEBUG(279, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy292; + goto yy278; } - if (yych >= '\r') goto yy296; -yy294: - YYDEBUG(294, *YYCURSOR); + if (yych >= '\r') goto yy282; +yy280: + YYDEBUG(280, *YYCURSOR); ++YYCURSOR; -yy295: - YYDEBUG(295, *YYCURSOR); +yy281: + YYDEBUG(281, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 484 "Zend/zend_ini_scanner.l" +#line 528 "Zend/zend_ini_scanner.l" { /* Comment */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 4099 "Zend/zend_ini_scanner.c" -yy296: - YYDEBUG(296, *YYCURSOR); +#line 4067 "Zend/zend_ini_scanner.c" +yy282: + YYDEBUG(282, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy294; - goto yy295; -yy297: - YYDEBUG(297, *YYCURSOR); + if (yych == '\n') goto yy280; + goto yy281; +yy283: + YYDEBUG(283, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(298, *YYCURSOR); + YYDEBUG(284, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy297; + goto yy283; } if (yych <= '%') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy253; - goto yy264; + if (yych <= 0x00) goto yy239; + goto yy250; } else { - if (yych <= '\n') goto yy253; - if (yych <= '\f') goto yy264; - goto yy253; + if (yych <= '\n') goto yy239; + if (yych <= '\f') goto yy250; + goto yy239; } } else { if (yych <= '"') { - if (yych <= 0x1F) goto yy264; - goto yy253; + if (yych <= 0x1F) goto yy250; + goto yy239; } else { - if (yych == '$') goto yy269; - goto yy264; + if (yych == '$') goto yy255; + goto yy250; } } } else { if (yych <= '=') { if (yych <= ':') { - if (yych <= ')') goto yy253; - goto yy264; + if (yych <= ')') goto yy239; + goto yy250; } else { - if (yych == '<') goto yy264; - goto yy253; + if (yych == '<') goto yy250; + goto yy239; } } else { if (yych <= '|') { - if (yych <= '{') goto yy264; - goto yy253; + if (yych <= '{') goto yy250; + goto yy239; } else { - if (yych == '~') goto yy253; - goto yy264; + if (yych == '~') goto yy239; + goto yy250; } } } -yy299: - YYDEBUG(299, *YYCURSOR); +yy285: + YYDEBUG(285, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(300, *YYCURSOR); + YYDEBUG(286, *YYCURSOR); if (yych <= '-') { if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x00) goto yy253; - if (yych <= 0x08) goto yy264; - goto yy253; + if (yych <= 0x00) goto yy239; + if (yych <= 0x08) goto yy250; + goto yy239; } else { - if (yych == '\r') goto yy253; - goto yy264; + if (yych == '\r') goto yy239; + goto yy250; } } else { if (yych <= '$') { - if (yych <= '"') goto yy253; - if (yych <= '#') goto yy264; - goto yy269; + if (yych <= '"') goto yy239; + if (yych <= '#') goto yy250; + goto yy255; } else { - if (yych <= '%') goto yy264; - if (yych <= ')') goto yy253; - goto yy264; + if (yych <= '%') goto yy250; + if (yych <= ')') goto yy239; + goto yy250; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '.') goto yy297; - if (yych <= '/') goto yy264; - goto yy299; + if (yych <= '.') goto yy283; + if (yych <= '/') goto yy250; + goto yy285; } else { - if (yych == ';') goto yy253; - goto yy264; + if (yych == ';') goto yy239; + goto yy250; } } else { if (yych <= '|') { - if (yych <= '=') goto yy253; - if (yych <= '{') goto yy264; - goto yy253; + if (yych <= '=') goto yy239; + if (yych <= '{') goto yy250; + goto yy239; } else { - if (yych == '~') goto yy253; - goto yy264; + if (yych == '~') goto yy239; + goto yy250; } } } -yy301: - YYDEBUG(301, *YYCURSOR); +yy287: + YYDEBUG(287, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(302, *YYCURSOR); + YYDEBUG(288, *YYCURSOR); if (yych <= ')') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy253; - goto yy264; + if (yych <= 0x00) goto yy239; + goto yy250; } else { - if (yych <= '\n') goto yy253; - if (yych <= '\f') goto yy264; - goto yy253; + if (yych <= '\n') goto yy239; + if (yych <= '\f') goto yy250; + goto yy239; } } else { if (yych <= '#') { - if (yych <= 0x1F) goto yy264; - if (yych <= '"') goto yy253; - goto yy264; + if (yych <= 0x1F) goto yy250; + if (yych <= '"') goto yy239; + goto yy250; } else { - if (yych <= '$') goto yy269; - if (yych <= '%') goto yy264; - goto yy253; + if (yych <= '$') goto yy255; + if (yych <= '%') goto yy250; + goto yy239; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '/') goto yy264; - goto yy301; + if (yych <= '/') goto yy250; + goto yy287; } else { - if (yych == ';') goto yy253; - goto yy264; + if (yych == ';') goto yy239; + goto yy250; } } else { if (yych <= '|') { - if (yych <= '=') goto yy253; - if (yych <= '{') goto yy264; - goto yy253; + if (yych <= '=') goto yy239; + if (yych <= '{') goto yy250; + goto yy239; } else { - if (yych == '~') goto yy253; - goto yy264; + if (yych == '~') goto yy239; + goto yy250; } } } -yy303: - YYDEBUG(303, *YYCURSOR); +yy289: + YYDEBUG(289, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(304, *YYCURSOR); + YYDEBUG(290, *YYCURSOR); if (yych <= ')') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy253; - goto yy264; + if (yych <= 0x00) goto yy239; + goto yy250; } else { - if (yych <= '\n') goto yy253; - if (yych <= '\f') goto yy264; - goto yy253; + if (yych <= '\n') goto yy239; + if (yych <= '\f') goto yy250; + goto yy239; } } else { if (yych <= '#') { - if (yych <= 0x1F) goto yy264; - if (yych <= '"') goto yy253; - goto yy264; + if (yych <= 0x1F) goto yy250; + if (yych <= '"') goto yy239; + goto yy250; } else { - if (yych <= '$') goto yy269; - if (yych <= '%') goto yy264; - goto yy253; + if (yych <= '$') goto yy255; + if (yych <= '%') goto yy250; + goto yy239; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '/') goto yy264; - goto yy303; + if (yych <= '/') goto yy250; + goto yy289; } else { - if (yych == ';') goto yy253; - goto yy264; + if (yych == ';') goto yy239; + goto yy250; } } else { if (yych <= '|') { - if (yych <= '=') goto yy253; - if (yych <= '{') goto yy264; - goto yy253; + if (yych <= '=') goto yy239; + if (yych <= '{') goto yy250; + goto yy239; } else { - if (yych == '~') goto yy253; - goto yy264; + if (yych == '~') goto yy239; + goto yy250; } } } -yy305: - YYDEBUG(305, *YYCURSOR); +yy291: + YYDEBUG(291, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(306, *YYCURSOR); + YYDEBUG(292, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy305; + goto yy291; } - YYDEBUG(307, *YYCURSOR); + YYDEBUG(293, *YYCURSOR); ++YYCURSOR; - YYDEBUG(308, *YYCURSOR); + YYDEBUG(294, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 337 "Zend/zend_ini_scanner.l" +#line 354 "Zend/zend_ini_scanner.l" { /* Raw string */ /* Eat leading and trailing single quotes */ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { @@ -4316,173 +4284,185 @@ yy305: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 4320 "Zend/zend_ini_scanner.c" -yy309: - YYDEBUG(309, *YYCURSOR); +#line 4288 "Zend/zend_ini_scanner.c" +yy295: + YYDEBUG(295, *YYCURSOR); ++YYCURSOR; - YYDEBUG(310, *YYCURSOR); + YYDEBUG(296, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 367 "Zend/zend_ini_scanner.l" +#line 384 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 4331 "Zend/zend_ini_scanner.c" -yy311: - YYDEBUG(311, *YYCURSOR); +#line 4299 "Zend/zend_ini_scanner.c" +yy297: + YYDEBUG(297, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy312: - YYDEBUG(312, *YYCURSOR); - if (yych == '\t') goto yy311; - if (yych == ' ') goto yy311; - goto yy245; -yy313: - YYDEBUG(313, *YYCURSOR); +yy298: + YYDEBUG(298, *YYCURSOR); + if (yych == '\t') goto yy297; + if (yych == ' ') goto yy297; + goto yy231; +yy299: + YYDEBUG(299, *YYCURSOR); yych = *++YYCURSOR; - goto yy242; -yy314: - YYDEBUG(314, *YYCURSOR); + goto yy228; +yy300: + YYDEBUG(300, *YYCURSOR); yyaccept = 1; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy315: - YYDEBUG(315, *YYCURSOR); +yy301: + YYDEBUG(301, *YYCURSOR); if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x08) goto yy240; - if (yych <= '\t') goto yy314; - goto yy313; + if (yych <= 0x08) goto yy226; + if (yych <= '\t') goto yy300; + goto yy299; } else { - if (yych == '\r') goto yy317; - goto yy240; + if (yych == '\r') goto yy303; + goto yy226; } } else { if (yych <= '"') { - if (yych <= ' ') goto yy314; - if (yych <= '!') goto yy240; + if (yych <= ' ') goto yy300; + if (yych <= '!') goto yy226; } else { - if (yych == ';') goto yy292; - goto yy240; + if (yych == ';') goto yy278; + goto yy226; } } - YYDEBUG(316, *YYCURSOR); + YYDEBUG(302, *YYCURSOR); yych = *++YYCURSOR; - goto yy247; -yy317: - YYDEBUG(317, *YYCURSOR); + goto yy233; +yy303: + YYDEBUG(303, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy313; - goto yy242; + if ((yych = *YYCURSOR) == '\n') goto yy299; + goto yy228; } /* *********************************** */ yyc_ST_VARNAME: { static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 128, 0, 0, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, + 128, 0, 0, 128, 128, 0, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 128, 0, 128, 0, 128, + 0, 0, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 128, 0, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(318, *YYCURSOR); + YYDEBUG(304, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; - if (yych <= '@') { - if (yych <= ',') { - if (yych == '*') goto yy323; - goto yy321; + if (yych <= '\'') { + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych >= '\t') goto yy308; + } else { + if (yych == '\r') goto yy308; + } } else { - if (yych == '/') goto yy321; - if (yych <= '9') goto yy323; - goto yy321; + if (yych <= '$') { + if (yych != '#') goto yy308; + } else { + if (yych == '&') goto yy308; + } } } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy323; - if (yych == '_') goto yy323; - goto yy321; + if (yych <= 'Z') { + if (yych <= ';') { + if (yych <= ')') goto yy308; + if (yych >= ';') goto yy308; + } else { + if (yych == '=') goto yy308; + } } else { - if (yych <= 'z') goto yy323; - if (yych == '}') goto yy324; - goto yy321; + if (yych <= '|') { + if (yych <= '[') goto yy308; + if (yych >= '{') goto yy308; + } else { + if (yych <= '}') goto yy310; + if (yych <= '~') goto yy308; + } } } -yy320: - YYDEBUG(320, *YYCURSOR); + YYDEBUG(306, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy313; +yy307: + YYDEBUG(307, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 372 "Zend/zend_ini_scanner.l" +#line 389 "Zend/zend_ini_scanner.l" { /* Variable name */ RETURN_TOKEN(TC_VARNAME, yytext, yyleng); } -#line 4448 "Zend/zend_ini_scanner.c" -yy321: - YYDEBUG(321, *YYCURSOR); +#line 4432 "Zend/zend_ini_scanner.c" +yy308: + YYDEBUG(308, *YYCURSOR); ++YYCURSOR; - YYDEBUG(322, *YYCURSOR); + YYDEBUG(309, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 502 "Zend/zend_ini_scanner.l" +#line 546 "Zend/zend_ini_scanner.l" { return 0; } -#line 4458 "Zend/zend_ini_scanner.c" -yy323: - YYDEBUG(323, *YYCURSOR); - yych = *++YYCURSOR; - goto yy327; -yy324: - YYDEBUG(324, *YYCURSOR); +#line 4442 "Zend/zend_ini_scanner.c" +yy310: + YYDEBUG(310, *YYCURSOR); ++YYCURSOR; - YYDEBUG(325, *YYCURSOR); + YYDEBUG(311, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 376 "Zend/zend_ini_scanner.l" +#line 393 "Zend/zend_ini_scanner.l" { /* Variable end */ yy_pop_state(TSRMLS_C); return '}'; } -#line 4473 "Zend/zend_ini_scanner.c" -yy326: - YYDEBUG(326, *YYCURSOR); +#line 4453 "Zend/zend_ini_scanner.c" +yy312: + YYDEBUG(312, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy327: - YYDEBUG(327, *YYCURSOR); +yy313: + YYDEBUG(313, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy326; + goto yy312; } - goto yy320; + goto yy307; } } -#line 506 "Zend/zend_ini_scanner.l" +#line 550 "Zend/zend_ini_scanner.l" } diff --git a/Zend/zend_ini_scanner.h b/Zend/zend_ini_scanner.h index cef499fa5..f3109b1c3 100644 --- a/Zend/zend_ini_scanner.h +++ b/Zend/zend_ini_scanner.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_scanner.h,v 1.14.2.1.2.2.2.4 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_ini_scanner.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef _ZEND_INI_SCANNER_H #define _ZEND_INI_SCANNER_H diff --git a/Zend/zend_ini_scanner.l b/Zend/zend_ini_scanner.l index f283acddb..e87c6d74e 100644 --- a/Zend/zend_ini_scanner.l +++ b/Zend/zend_ini_scanner.l @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_scanner.l,v 1.41.2.2.2.2.2.17 2009/05/19 15:59:36 shire Exp $ */ +/* $Id: zend_ini_scanner.l 286913 2009-08-07 15:44:37Z jani $ */ #include <errno.h> #include "zend.h" @@ -54,7 +54,9 @@ #define YYSTATE YYGETCONDITION() #define yytext ((char*)SCNG(yy_text)) #define yyleng SCNG(yy_leng) -#define yyless(x) YYCURSOR = yytext + x +#define yyless(x) do { YYCURSOR = (unsigned char*)yytext + x; \ + yyleng = (unsigned int)x; } while(0) + /* #define yymore() goto yymore_restart */ /* perform sanity check. If this message is triggered you should @@ -156,12 +158,28 @@ static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC) /* {{{ init_ini_scanner() */ -static void init_ini_scanner(TSRMLS_D) +static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC) { + /* Sanity check */ + if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW) { + zend_error(E_WARNING, "Invalid scanner mode"); + return FAILURE; + } + SCNG(lineno) = 1; - SCNG(scanner_mode) = ZEND_INI_SCANNER_NORMAL; + SCNG(scanner_mode) = scanner_mode; + SCNG(yy_in) = fh; + + if (fh != NULL) { + ini_filename = zend_strndup(fh->filename, strlen(fh->filename)); + } else { + ini_filename = NULL; + } + zend_stack_init(&SCNG(state_stack)); BEGIN(INITIAL); + + return SUCCESS; } /* }}} */ @@ -199,15 +217,14 @@ int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRML char *buf; size_t size; - if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE) { + if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE || + init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE + ) { return FAILURE; } - init_ini_scanner(TSRMLS_C); - SCNG(scanner_mode) = scanner_mode; - SCNG(yy_in) = fh; yy_scan_buffer(buf, size TSRMLS_CC); - ini_filename = zend_strndup(fh->filename, strlen(fh->filename)); + return SUCCESS; } /* }}} */ @@ -218,11 +235,12 @@ int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC) { int len = strlen(str); - init_ini_scanner(TSRMLS_C); - SCNG(scanner_mode) = scanner_mode; - SCNG(yy_in) = NULL; + if (init_ini_scanner(scanner_mode, NULL TSRMLS_CC) == FAILURE) { + return FAILURE; + } + yy_scan_buffer(str, len TSRMLS_CC); - ini_filename = NULL; + return SUCCESS; } /* }}} */ @@ -308,19 +326,18 @@ NEWLINE ("\r"|"\n"|"\r\n") TABS_AND_SPACES [ \t] WHITESPACE [ \t]+ CONSTANT [a-zA-Z][a-zA-Z0-9_]* -LABEL [a-zA-Z0-9*._-]* +LABEL [^=\n\r\t ;|&$~(){}!"\[]+ TOKENS [:,.\[\]"'()|^&+-/*=%$!~<>?@{}] OPERATORS [&|~()!] DOLLAR_CURLY "${" SECTION_RAW_CHARS [^\]\n\r] SINGLE_QUOTED_CHARS [^'] -RAW_VALUE_CHARS [^=\n\r;] +RAW_VALUE_CHARS [^\n\r;] LITERAL_DOLLAR ("$"([^{\000]|("\\"{ANY_CHAR}))) VALUE_CHARS ([^$= \t\n\r;&|~()!"'\000]|{LITERAL_DOLLAR}) SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR}) -DOUBLE_QUOTES_CHARS ([^$"\\]|("\\"[^"])|{LITERAL_DOLLAR}|"\\"["][^\r\n]) <!*> := yyleng = YYCURSOR - SCNG(yy_text); @@ -453,20 +470,47 @@ DOUBLE_QUOTES_CHARS ([^$"\\]|("\\"[^"])|{LITERAL_DOLLAR}|"\\"["][^\r\n]) return '"'; } -<ST_DOUBLE_QUOTES>{DOUBLE_QUOTES_CHARS}+("\\"["])? { /* Escape double quoted string contents */ - if(yyleng > 1 && yytext[yyleng-1] == '"' && yytext[yyleng-2] == '\\') { - yyless(yyleng-1); - yyleng--; - } - zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); - return TC_QUOTED_STRING; -} - <ST_DOUBLE_QUOTES>["]{TABS_AND_SPACES}* { /* Double quoted '"' string ends */ yy_pop_state(TSRMLS_C); return '"'; } +<ST_DOUBLE_QUOTES>[^] { /* Escape double quoted string contents */ + if (YYCURSOR > YYLIMIT) { + return 0; + } + + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '"': + if (YYCURSOR < YYLIMIT && YYCURSOR[-2] == '\\' && *YYCURSOR != '\r' && *YYCURSOR != '\n') { + continue; + } + break; + case '$': + if (*YYCURSOR == '{') { + break; + } + continue; + case '\\': + if (YYCURSOR < YYLIMIT && *YYCURSOR != '"') { + YYCURSOR++; + } + /* fall through */ + default: + continue; + } + + YYCURSOR--; + break; + } + + yyleng = YYCURSOR - SCNG(yy_text); + + zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); + return TC_QUOTED_STRING; +} + <ST_SECTION_VALUE,ST_VALUE,ST_OFFSET>{WHITESPACE} { RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng); } diff --git a/Zend/zend_ini_scanner_defs.h b/Zend/zend_ini_scanner_defs.h index 7c5dc4a4c..280132abd 100644 --- a/Zend/zend_ini_scanner_defs.h +++ b/Zend/zend_ini_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Tue May 19 08:53:54 2009 */ +/* Generated by re2c 0.13.5 on Fri Aug 7 18:29:12 2009 */ #line 3 "Zend/zend_ini_scanner_defs.h" enum YYCONDTYPE { diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index d14ac528c..c14c52437 100755 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_interfaces.c,v 1.33.2.4.2.6.2.13 2009/03/25 10:39:26 dmitry Exp $ */ +/* $Id: zend_interfaces.c 277750 2009-03-25 10:39:26Z dmitry $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_interfaces.h b/Zend/zend_interfaces.h index 774d16742..7ff906537 100755 --- a/Zend/zend_interfaces.h +++ b/Zend/zend_interfaces.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_interfaces.h,v 1.11.2.1.2.2.2.4 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_interfaces.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_INTERFACES_H #define ZEND_INTERFACES_H diff --git a/Zend/zend_istdiostream.h b/Zend/zend_istdiostream.h index 6cdc4c8e4..da1cfed87 100644 --- a/Zend/zend_istdiostream.h +++ b/Zend/zend_istdiostream.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_istdiostream.h,v 1.6.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_istdiostream.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef _ZEND_STDIOSTREAM #define _ZEND_STDIOSTREAM diff --git a/Zend/zend_iterators.c b/Zend/zend_iterators.c index 9d3d8009e..9d9f04595 100755 --- a/Zend/zend_iterators.c +++ b/Zend/zend_iterators.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_iterators.c,v 1.12.2.1.2.2.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_iterators.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_iterators.h b/Zend/zend_iterators.h index becc47e74..6c90d817b 100755 --- a/Zend/zend_iterators.h +++ b/Zend/zend_iterators.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_iterators.h,v 1.10.2.1.2.2.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_iterators.h 272370 2008-12-31 11:15:49Z sebastian $ */ /* These iterators were designed to operate within the foreach() * structures provided by the engine, but could be extended for use diff --git a/Zend/zend_language_parser.c b/Zend/zend_language_parser.c index e875a5e46..faf71f822 100644 --- a/Zend/zend_language_parser.c +++ b/Zend/zend_language_parser.c @@ -349,7 +349,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_parser.y,v 1.160.2.4.2.8.2.35 2009/03/26 12:37:17 dmitry Exp $ */ +/* $Id: zend_language_parser.y 277815 2009-03-26 12:37:54Z dmitry $ */ /* * LALR shift/reduce conflicts and how they are resolved: diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index ab3c29ad0..5923ff550 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_parser.y,v 1.160.2.4.2.8.2.35 2009/03/26 12:37:17 dmitry Exp $ */ +/* $Id: zend_language_parser.y 277815 2009-03-26 12:37:54Z dmitry $ */ /* * LALR shift/reduce conflicts and how they are resolved: diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 607a9df66..1cb027f11 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -23,7 +23,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.c,v 1.1.2.38 2009/05/05 01:44:50 mattwil Exp $ */ +/* $Id: zend_language_scanner.c 279948 2009-05-05 01:44:52Z mattwil $ */ #if 0 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) diff --git a/Zend/zend_language_scanner.h b/Zend/zend_language_scanner.h index e75f54b39..5add51c97 100644 --- a/Zend/zend_language_scanner.h +++ b/Zend/zend_language_scanner.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.h,v 1.19.2.1.2.1.2.5 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_language_scanner.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_SCANNER_H #define ZEND_SCANNER_H diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 23c06a016..9d42299dc 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.l,v 1.131.2.11.2.13.2.40 2009/05/05 01:35:44 mattwil Exp $ */ +/* $Id: zend_language_scanner.l 279941 2009-05-05 01:35:44Z mattwil $ */ #if 0 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) diff --git a/Zend/zend_list.c b/Zend/zend_list.c index ae3bbc97b..2f71ea718 100644 --- a/Zend/zend_list.c +++ b/Zend/zend_list.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_list.c,v 1.66.2.1.2.1.2.4 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_list.c 272370 2008-12-31 11:15:49Z sebastian $ */ /* resource lists */ diff --git a/Zend/zend_list.h b/Zend/zend_list.h index 1bdcfed86..a38e057dc 100644 --- a/Zend/zend_list.h +++ b/Zend/zend_list.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_list.h,v 1.48.2.1.2.1.2.4 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_list.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_LIST_H #define ZEND_LIST_H diff --git a/Zend/zend_llist.c b/Zend/zend_llist.c index 80dbc0a0b..b48b15072 100644 --- a/Zend/zend_llist.c +++ b/Zend/zend_llist.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_llist.c,v 1.35.2.1.2.2.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_llist.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include "zend.h" #include "zend_llist.h" diff --git a/Zend/zend_llist.h b/Zend/zend_llist.h index 6b9cdd0ab..47ec5a0d0 100644 --- a/Zend/zend_llist.h +++ b/Zend/zend_llist.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_llist.h,v 1.33.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_llist.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_LLIST_H #define ZEND_LLIST_H diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h index d3d4b9716..67736704f 100644 --- a/Zend/zend_modules.h +++ b/Zend/zend_modules.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_modules.h,v 1.67.2.3.2.4.2.9 2009/06/26 15:44:19 johannes Exp $ */ +/* $Id: zend_modules.h 282827 2009-06-26 15:44:19Z johannes $ */ #ifndef MODULES_H #define MODULES_H diff --git a/Zend/zend_multibyte.c b/Zend/zend_multibyte.c index 5159afa43..7d270ade9 100644 --- a/Zend/zend_multibyte.c +++ b/Zend/zend_multibyte.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_multibyte.c,v 1.4.2.4.2.1.2.7 2009/03/18 17:44:25 moriyoshi Exp $ */ +/* $Id: zend_multibyte.c 277438 2009-03-18 17:44:25Z moriyoshi $ */ #include "zend.h" #include "zend_compile.h" diff --git a/Zend/zend_multibyte.h b/Zend/zend_multibyte.h index 454e35d2e..ee3e2743f 100644 --- a/Zend/zend_multibyte.h +++ b/Zend/zend_multibyte.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_multibyte.h,v 1.3.2.3.2.1.2.4 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_multibyte.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_MULTIBYTE_H #define ZEND_MULTIBYTE_H diff --git a/Zend/zend_multiply.h b/Zend/zend_multiply.h index ad4adc88d..afac089f9 100644 --- a/Zend/zend_multiply.h +++ b/Zend/zend_multiply.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_multiply.h,v 1.10.2.1.2.2.2.3 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_multiply.h 272370 2008-12-31 11:15:49Z sebastian $ */ #if defined(__i386__) && defined(__GNUC__) diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index 73edc0f71..7c081caab 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_object_handlers.c,v 1.135.2.6.2.22.2.31 2009/06/19 03:29:47 scottmac Exp $ */ +/* $Id: zend_object_handlers.c 282413 2009-06-19 03:29:47Z scottmac $ */ #include "zend.h" #include "zend_globals.h" diff --git a/Zend/zend_object_handlers.h b/Zend/zend_object_handlers.h index 463852341..88871ef29 100644 --- a/Zend/zend_object_handlers.h +++ b/Zend/zend_object_handlers.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_object_handlers.h,v 1.47.2.2.2.5.2.7 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_object_handlers.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_OBJECT_HANDLERS_H #define ZEND_OBJECT_HANDLERS_H diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index 3b41926e1..f69b82d9d 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects.c,v 1.56.2.3.2.6.2.8 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_objects.c 289775 2009-10-19 21:43:34Z johannes $ */ #include "zend.h" #include "zend_globals.h" @@ -49,7 +49,7 @@ ZEND_API void zend_object_std_dtor(zend_object *object TSRMLS_DC) ZEND_API void zend_objects_destroy_object(zend_object *object, zend_object_handle handle TSRMLS_DC) { - zend_function *destructor = object->ce->destructor; + zend_function *destructor = object ? object->ce->destructor : NULL; if (destructor) { zval *obj; diff --git a/Zend/zend_objects.h b/Zend/zend_objects.h index 1b60e9953..1a87ca3a2 100644 --- a/Zend/zend_objects.h +++ b/Zend/zend_objects.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects.h,v 1.25.2.2.2.1.2.3 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_objects.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_OBJECTS_H #define ZEND_OBJECTS_H diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index 1cce7ca62..020796e95 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects_API.c,v 1.47.2.6.2.6.2.9 2009/02/11 09:58:23 tony2001 Exp $ */ +/* $Id: zend_objects_API.c 275561 2009-02-11 09:58:23Z tony2001 $ */ #include "zend.h" #include "zend_globals.h" diff --git a/Zend/zend_objects_API.h b/Zend/zend_objects_API.h index de9bf114f..643eaffba 100644 --- a/Zend/zend_objects_API.h +++ b/Zend/zend_objects_API.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects_API.h,v 1.20.2.1.2.4.2.5 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_objects_API.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_OBJECTS_API_H #define ZEND_OBJECTS_API_H diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index fd3cb84df..a721b0d7b 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_opcode.c,v 1.110.2.6.2.3.2.11 2009/06/05 23:20:59 shire Exp $ */ +/* $Id: zend_opcode.c 281737 2009-06-05 23:20:59Z shire $ */ #include <stdio.h> diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 3b3fef10e..6ee0d8e59 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_operators.c,v 1.208.2.4.2.23.2.27 2009/06/04 18:20:42 mattwil Exp $ */ +/* $Id: zend_operators.c 281670 2009-06-04 18:20:45Z mattwil $ */ #include <ctype.h> diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index 8896d0f9d..03cd707d4 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_operators.h,v 1.94.2.4.2.10.2.16 2009/06/04 18:20:42 mattwil Exp $ */ +/* $Id: zend_operators.h 281670 2009-06-04 18:20:45Z mattwil $ */ #ifndef ZEND_OPERATORS_H #define ZEND_OPERATORS_H diff --git a/Zend/zend_ptr_stack.c b/Zend/zend_ptr_stack.c index 54296c740..5625a349d 100644 --- a/Zend/zend_ptr_stack.c +++ b/Zend/zend_ptr_stack.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ptr_stack.c,v 1.23.2.1.2.1.2.3 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_ptr_stack.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include "zend.h" #include "zend_ptr_stack.h" diff --git a/Zend/zend_ptr_stack.h b/Zend/zend_ptr_stack.h index f4536ce93..bd2f8b2d3 100644 --- a/Zend/zend_ptr_stack.h +++ b/Zend/zend_ptr_stack.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ptr_stack.h,v 1.22.2.2.2.1.2.5 2009/06/05 11:21:31 lbarnaud Exp $ */ +/* $Id: zend_ptr_stack.h 281712 2009-06-05 11:21:31Z lbarnaud $ */ #ifndef ZEND_PTR_STACK_H #define ZEND_PTR_STACK_H diff --git a/Zend/zend_qsort.c b/Zend/zend_qsort.c index 33c2d12cc..8b65f964d 100644 --- a/Zend/zend_qsort.c +++ b/Zend/zend_qsort.c @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_qsort.c,v 1.8.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_qsort.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include "zend.h" diff --git a/Zend/zend_qsort.h b/Zend/zend_qsort.h index b2981d828..1044320d9 100644 --- a/Zend/zend_qsort.h +++ b/Zend/zend_qsort.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_qsort.h,v 1.8.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_qsort.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_QSORT_H #define ZEND_QSORT_H diff --git a/Zend/zend_sprintf.c b/Zend/zend_sprintf.c index e6a871833..de1dd208f 100644 --- a/Zend/zend_sprintf.c +++ b/Zend/zend_sprintf.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_sprintf.c,v 1.16.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_sprintf.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include <stdio.h> diff --git a/Zend/zend_stack.c b/Zend/zend_stack.c index 688aced3c..a8da8244c 100644 --- a/Zend/zend_stack.c +++ b/Zend/zend_stack.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stack.c,v 1.16.2.1.2.1.2.4 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_stack.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include "zend.h" #include "zend_stack.h" diff --git a/Zend/zend_stack.h b/Zend/zend_stack.h index 8c8adf279..5aed0321b 100644 --- a/Zend/zend_stack.h +++ b/Zend/zend_stack.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stack.h,v 1.19.2.1.2.1.2.3 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_stack.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_STACK_H #define ZEND_STACK_H diff --git a/Zend/zend_static_allocator.c b/Zend/zend_static_allocator.c index a0c0ddf2c..efa299e94 100644 --- a/Zend/zend_static_allocator.c +++ b/Zend/zend_static_allocator.c @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_static_allocator.c,v 1.13.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_static_allocator.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include "zend_static_allocator.h" diff --git a/Zend/zend_static_allocator.h b/Zend/zend_static_allocator.h index e037a4399..70cfab744 100644 --- a/Zend/zend_static_allocator.h +++ b/Zend/zend_static_allocator.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_static_allocator.h,v 1.13.2.1.2.1.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_static_allocator.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_STATIC_ALLOCATOR_H #define ZEND_STATIC_ALLOCATOR_H diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c index 7befee849..2b99358f0 100644 --- a/Zend/zend_stream.c +++ b/Zend/zend_stream.c @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stream.c,v 1.13.2.1.2.1.2.11 2009/03/26 17:28:49 dmitry Exp $ */ +/* $Id: zend_stream.c 277834 2009-03-26 17:28:49Z dmitry $ */ #include "zend.h" diff --git a/Zend/zend_stream.h b/Zend/zend_stream.h index ced3cffe4..f9c08eaf8 100644 --- a/Zend/zend_stream.h +++ b/Zend/zend_stream.h @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stream.h,v 1.8.2.1.2.1.2.6 2009/06/16 14:33:33 felipe Exp $ */ +/* $Id: zend_stream.h 282248 2009-06-16 14:33:33Z felipe $ */ #ifndef ZEND_STREAM_H #define ZEND_STREAM_H diff --git a/Zend/zend_strtod.c b/Zend/zend_strtod.c index 85c59a3d5..c3a86c676 100644 --- a/Zend/zend_strtod.c +++ b/Zend/zend_strtod.c @@ -89,7 +89,7 @@ * directly -- and assumed always to succeed. */ -/* $Id: zend_strtod.c,v 1.17.2.2.2.13.2.5 2009/03/18 10:18:10 dmitry Exp $ */ +/* $Id: zend_strtod.c 277398 2009-03-18 10:18:10Z dmitry $ */ #include <zend_operators.h> #include <zend_strtod.h> diff --git a/Zend/zend_strtod.h b/Zend/zend_strtod.h index 8c7aaa276..01eb99375 100644 --- a/Zend/zend_strtod.h +++ b/Zend/zend_strtod.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_strtod.h,v 1.3.2.1.2.4.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_strtod.h 272370 2008-12-31 11:15:49Z sebastian $ */ /* This is a header file for the strtod implementation by David M. Gay which * can be found in zend_strtod.c */ diff --git a/Zend/zend_ts_hash.c b/Zend/zend_ts_hash.c index 01b2a8d05..cc27dc9c5 100644 --- a/Zend/zend_ts_hash.c +++ b/Zend/zend_ts_hash.c @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ts_hash.c,v 1.14.2.1.2.2.2.4 2009/01/09 19:16:55 tony2001 Exp $ */ +/* $Id: zend_ts_hash.c 273192 2009-01-09 19:16:55Z tony2001 $ */ #include "zend.h" #include "zend_ts_hash.h" diff --git a/Zend/zend_ts_hash.h b/Zend/zend_ts_hash.h index c01c23236..d6ffb7726 100644 --- a/Zend/zend_ts_hash.h +++ b/Zend/zend_ts_hash.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ts_hash.h,v 1.13.2.1.2.1.2.4 2009/01/09 19:16:55 tony2001 Exp $ */ +/* $Id: zend_ts_hash.h 273192 2009-01-09 19:16:55Z tony2001 $ */ #ifndef ZEND_TS_HASH_H #define ZEND_TS_HASH_H diff --git a/Zend/zend_types.h b/Zend/zend_types.h index cce63c6a9..100b27927 100644 --- a/Zend/zend_types.h +++ b/Zend/zend_types.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_types.h,v 1.6.2.2.2.3.2.5 2009/06/05 11:21:31 lbarnaud Exp $ */ +/* $Id: zend_types.h 281712 2009-06-05 11:21:31Z lbarnaud $ */ #ifndef ZEND_TYPES_H #define ZEND_TYPES_H diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c index 743207cac..5aad679b0 100644 --- a/Zend/zend_variables.c +++ b/Zend/zend_variables.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_variables.c,v 1.62.2.1.2.2.2.4 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_variables.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include <stdio.h> #include "zend.h" diff --git a/Zend/zend_variables.h b/Zend/zend_variables.h index 32fe34c11..fbc989353 100644 --- a/Zend/zend_variables.h +++ b/Zend/zend_variables.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_variables.h,v 1.34.2.1.2.1.2.5 2009/05/01 21:46:53 jani Exp $ */ +/* $Id: zend_variables.h 279681 2009-05-01 21:46:53Z jani $ */ #ifndef ZEND_VARIABLES_H #define ZEND_VARIABLES_H diff --git a/Zend/zend_vm.h b/Zend/zend_vm.h index 5974b317c..a80a4b89b 100644 --- a/Zend/zend_vm.h +++ b/Zend/zend_vm.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_vm.h,v 1.7.2.1.2.2.2.2 2008/12/31 11:15:32 sebastian Exp $ */ +/* $Id: zend_vm.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef ZEND_VM_H #define ZEND_VM_H diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 7946feae7..485f2cc17 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_vm_def.h,v 1.59.2.29.2.48.2.95 2009/06/07 15:46:51 mattwil Exp $ */ +/* $Id: zend_vm_def.h 290152 2009-11-02 18:11:33Z pajoye $ */ /* If you change this file, please regenerate the zend_vm_execute.h and * zend_vm_opcodes.h files by running: @@ -940,6 +940,7 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMP|VAR|CV, ANY, int type if (opline->op2.u.EA.type == ZEND_FETCH_STATIC_MEMBER) { retval = zend_std_get_static_property(EX_T(opline->op2.u.var).class_entry, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0 TSRMLS_CC); + FREE_OP1(); } else { target_symbol_table = zend_get_target_symbol_table(opline, EX(Ts), type, varname TSRMLS_CC); /* @@ -2328,16 +2329,12 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY) EX_T(opline->result.u.var).var.fcall_returned_reference = EX(function_state).function->common.return_reference; } -#ifndef ZEND_VM_EXPORT if (zend_execute == execute && !EG(exception)) { EX(call_opline) = opline; ZEND_VM_ENTER(); } else { zend_execute(EG(active_op_array) TSRMLS_CC); } -#else - zend_execute(EG(active_op_array) TSRMLS_CC); -#endif EG(opline_ptr) = &EX(opline); EG(active_op_array) = EX(op_array); @@ -2662,7 +2659,9 @@ ZEND_VM_HANDLER(106, ZEND_SEND_VAR_NO_REF, VAR|CV, ANY) } else { zval *valptr; - if (!(opline->extended_value & ZEND_ARG_SEND_SILENT)) { + if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ? + !(opline->extended_value & ZEND_ARG_SEND_SILENT) : + !ARG_MAY_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { zend_error(E_STRICT, "Only variables should be passed by reference"); } ALLOC_ZVAL(valptr); @@ -2688,6 +2687,10 @@ ZEND_VM_HANDLER(67, ZEND_SEND_REF, VAR|CV, ANY) zend_error_noreturn(E_ERROR, "Only variables can be passed by reference"); } + if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { + ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper); + } + SEPARATE_ZVAL_TO_MAKE_IS_REF(varptr_ptr); varptr = *varptr_ptr; Z_ADDREF_P(varptr); @@ -3571,28 +3574,33 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY) ALLOC_ZVAL(tmp); INIT_PZVAL_COPY(tmp, array_ptr); array_ptr = tmp; + if (Z_TYPE_P(array_ptr) == IS_OBJECT) { + ce = Z_OBJCE_P(array_ptr); + if (ce && ce->get_iterator) { + Z_DELREF_P(array_ptr); + } + } } else if (Z_TYPE_P(array_ptr) == IS_OBJECT) { ce = Z_OBJCE_P(array_ptr); if (!ce || !ce->get_iterator) { Z_ADDREF_P(array_ptr); } + } else if (OP1_TYPE == IS_CONST || + ((OP1_TYPE == IS_CV || OP1_TYPE == IS_VAR) && + !Z_ISREF_P(array_ptr) && + Z_REFCOUNT_P(array_ptr) > 1)) { + zval *tmp; + + ALLOC_ZVAL(tmp); + INIT_PZVAL_COPY(tmp, array_ptr); + zval_copy_ctor(tmp); + array_ptr = tmp; } else { - if ((OP1_TYPE == IS_CV || OP1_TYPE == IS_VAR) && - !Z_ISREF_P(array_ptr) && - Z_REFCOUNT_P(array_ptr) > 1) { - zval *tmp; - - ALLOC_ZVAL(tmp); - INIT_PZVAL_COPY(tmp, array_ptr); - zval_copy_ctor(tmp); - array_ptr = tmp; - } else { - Z_ADDREF_P(array_ptr); - } + Z_ADDREF_P(array_ptr); } } - if (OP1_TYPE != IS_TMP_VAR && ce && ce->get_iterator) { + if (ce && ce->get_iterator) { iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC); if (iter && !EG(exception)) { @@ -4237,12 +4245,13 @@ ZEND_VM_HANDLER(144, ZEND_ADD_INTERFACE, ANY, CONST) zend_class_entry *ce = EX_T(opline->op1.u.var).class_entry; zend_class_entry *iface = zend_fetch_class(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), opline->extended_value TSRMLS_CC); - if (!(iface->ce_flags & ZEND_ACC_INTERFACE)) { - zend_error_noreturn(E_ERROR, "%s cannot implement %s - it is not an interface", ce->name, iface->name); + if (iface) { + if (!(iface->ce_flags & ZEND_ACC_INTERFACE)) { + zend_error_noreturn(E_ERROR, "%s cannot implement %s - it is not an interface", ce->name, iface->name); + } + zend_do_implement_interface(ce, iface TSRMLS_CC); } - zend_do_implement_interface(ce, iface TSRMLS_CC); - ZEND_VM_NEXT_OPCODE(); } @@ -4254,8 +4263,8 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY) int catched = 0; zval restored_error_reporting; - void **stack_frame = (void**)EX(Ts) + - (sizeof(temp_variable) * EX(op_array)->T) / sizeof(void*); + void **stack_frame = (void**)(((char*)EX(Ts)) + + (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * EX(op_array)->T)); while (zend_vm_stack_top(TSRMLS_C) != stack_frame) { zval *stack_zval_p = zend_vm_stack_pop(TSRMLS_C); @@ -4351,6 +4360,10 @@ ZEND_VM_HANDLER(150, ZEND_USER_OPCODE, ANY, ANY) ZEND_VM_CONTINUE(); case ZEND_USER_OPCODE_RETURN: ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper); + case ZEND_USER_OPCODE_ENTER: + ZEND_VM_ENTER(); + case ZEND_USER_OPCODE_LEAVE: + ZEND_VM_LEAVE(); case ZEND_USER_OPCODE_DISPATCH: ZEND_VM_DISPATCH(EX(opline)->opcode, EX(opline)); default: diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 2c3e7875a..9d931107d 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -52,13 +52,13 @@ ZEND_API void execute(zend_op_array *op_array TSRMLS_DC) zend_vm_enter: /* Initialize execute_data */ execute_data = (zend_execute_data *)zend_vm_stack_alloc( - sizeof(zend_execute_data) + - sizeof(zval**) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2) + - sizeof(temp_variable) * op_array->T TSRMLS_CC); + ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data)) + + ZEND_MM_ALIGNED_SIZE(sizeof(zval**) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2)) + + ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T TSRMLS_CC); - EX(CVs) = (zval***)((char*)execute_data + sizeof(zend_execute_data)); + EX(CVs) = (zval***)((char*)execute_data + ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data))); memset(EX(CVs), 0, sizeof(zval**) * op_array->last_var); - EX(Ts) = (temp_variable *)(EX(CVs) + op_array->last_var * (EG(active_symbol_table) ? 1 : 2)); + EX(Ts) = (temp_variable *)(((char*)EX(CVs)) + ZEND_MM_ALIGNED_SIZE(sizeof(zval**) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2))); EX(fbc) = NULL; EX(called_scope) = NULL; EX(object) = NULL; @@ -330,16 +330,12 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR EX_T(opline->result.u.var).var.fcall_returned_reference = EX(function_state).function->common.return_reference; } -#if 1 if (zend_execute == execute && !EG(exception)) { EX(call_opline) = opline; ZEND_VM_ENTER(); } else { zend_execute(EG(active_op_array) TSRMLS_CC); } -#else - zend_execute(EG(active_op_array) TSRMLS_CC); -#endif EG(opline_ptr) = &EX(opline); EG(active_op_array) = EX(op_array); @@ -602,8 +598,8 @@ static int ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER int catched = 0; zval restored_error_reporting; - void **stack_frame = (void**)EX(Ts) + - (sizeof(temp_variable) * EX(op_array)->T) / sizeof(void*); + void **stack_frame = (void**)(((char*)EX(Ts)) + + (ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * EX(op_array)->T)); while (zend_vm_stack_top(TSRMLS_C) != stack_frame) { zval *stack_zval_p = zend_vm_stack_pop(TSRMLS_C); @@ -699,6 +695,10 @@ static int ZEND_FASTCALL ZEND_USER_OPCODE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS ZEND_VM_CONTINUE(); case ZEND_USER_OPCODE_RETURN: return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); + case ZEND_USER_OPCODE_ENTER: + ZEND_VM_ENTER(); + case ZEND_USER_OPCODE_LEAVE: + ZEND_VM_LEAVE(); case ZEND_USER_OPCODE_DISPATCH: ZEND_VM_DISPATCH(EX(opline)->opcode, EX(opline)); default: @@ -889,12 +889,13 @@ static int ZEND_FASTCALL ZEND_ADD_INTERFACE_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND zend_class_entry *ce = EX_T(opline->op1.u.var).class_entry; zend_class_entry *iface = zend_fetch_class(Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant), opline->extended_value TSRMLS_CC); - if (!(iface->ce_flags & ZEND_ACC_INTERFACE)) { - zend_error_noreturn(E_ERROR, "%s cannot implement %s - it is not an interface", ce->name, iface->name); + if (iface) { + if (!(iface->ce_flags & ZEND_ACC_INTERFACE)) { + zend_error_noreturn(E_ERROR, "%s cannot implement %s - it is not an interface", ce->name, iface->name); + } + zend_do_implement_interface(ce, iface TSRMLS_CC); } - zend_do_implement_interface(ce, iface TSRMLS_CC); - ZEND_VM_NEXT_OPCODE(); } @@ -2108,28 +2109,33 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A ALLOC_ZVAL(tmp); INIT_PZVAL_COPY(tmp, array_ptr); array_ptr = tmp; + if (Z_TYPE_P(array_ptr) == IS_OBJECT) { + ce = Z_OBJCE_P(array_ptr); + if (ce && ce->get_iterator) { + Z_DELREF_P(array_ptr); + } + } } else if (Z_TYPE_P(array_ptr) == IS_OBJECT) { ce = Z_OBJCE_P(array_ptr); if (!ce || !ce->get_iterator) { Z_ADDREF_P(array_ptr); } + } else if (IS_CONST == IS_CONST || + ((IS_CONST == IS_CV || IS_CONST == IS_VAR) && + !Z_ISREF_P(array_ptr) && + Z_REFCOUNT_P(array_ptr) > 1)) { + zval *tmp; + + ALLOC_ZVAL(tmp); + INIT_PZVAL_COPY(tmp, array_ptr); + zval_copy_ctor(tmp); + array_ptr = tmp; } else { - if ((IS_CONST == IS_CV || IS_CONST == IS_VAR) && - !Z_ISREF_P(array_ptr) && - Z_REFCOUNT_P(array_ptr) > 1) { - zval *tmp; - - ALLOC_ZVAL(tmp); - INIT_PZVAL_COPY(tmp, array_ptr); - zval_copy_ctor(tmp); - array_ptr = tmp; - } else { - Z_ADDREF_P(array_ptr); - } + Z_ADDREF_P(array_ptr); } } - if (IS_CONST != IS_TMP_VAR && ce && ce->get_iterator) { + if (ce && ce->get_iterator) { iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC); if (iter && !EG(exception)) { @@ -4602,6 +4608,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_TMP(int type, ZEND_O if (opline->op2.u.EA.type == ZEND_FETCH_STATIC_MEMBER) { retval = zend_std_get_static_property(EX_T(opline->op2.u.var).class_entry, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0 TSRMLS_CC); + zval_dtor(free_op1.var); } else { target_symbol_table = zend_get_target_symbol_table(opline, EX(Ts), type, varname TSRMLS_CC); /* @@ -5370,28 +5377,33 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG ALLOC_ZVAL(tmp); INIT_PZVAL_COPY(tmp, array_ptr); array_ptr = tmp; + if (Z_TYPE_P(array_ptr) == IS_OBJECT) { + ce = Z_OBJCE_P(array_ptr); + if (ce && ce->get_iterator) { + Z_DELREF_P(array_ptr); + } + } } else if (Z_TYPE_P(array_ptr) == IS_OBJECT) { ce = Z_OBJCE_P(array_ptr); if (!ce || !ce->get_iterator) { Z_ADDREF_P(array_ptr); } + } else if (IS_TMP_VAR == IS_CONST || + ((IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) && + !Z_ISREF_P(array_ptr) && + Z_REFCOUNT_P(array_ptr) > 1)) { + zval *tmp; + + ALLOC_ZVAL(tmp); + INIT_PZVAL_COPY(tmp, array_ptr); + zval_copy_ctor(tmp); + array_ptr = tmp; } else { - if ((IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) && - !Z_ISREF_P(array_ptr) && - Z_REFCOUNT_P(array_ptr) > 1) { - zval *tmp; - - ALLOC_ZVAL(tmp); - INIT_PZVAL_COPY(tmp, array_ptr); - zval_copy_ctor(tmp); - array_ptr = tmp; - } else { - Z_ADDREF_P(array_ptr); - } + Z_ADDREF_P(array_ptr); } } - if (IS_TMP_VAR != IS_TMP_VAR && ce && ce->get_iterator) { + if (ce && ce->get_iterator) { iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC); if (iter && !EG(exception)) { @@ -7838,6 +7850,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR(int type, ZEND_O if (opline->op2.u.EA.type == ZEND_FETCH_STATIC_MEMBER) { retval = zend_std_get_static_property(EX_T(opline->op2.u.var).class_entry, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0 TSRMLS_CC); + if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; } else { target_symbol_table = zend_get_target_symbol_table(opline, EX(Ts), type, varname TSRMLS_CC); /* @@ -8278,7 +8291,9 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND } else { zval *valptr; - if (!(opline->extended_value & ZEND_ARG_SEND_SILENT)) { + if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ? + !(opline->extended_value & ZEND_ARG_SEND_SILENT) : + !ARG_MAY_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { zend_error(E_STRICT, "Only variables should be passed by reference"); } ALLOC_ZVAL(valptr); @@ -8304,6 +8319,10 @@ static int ZEND_FASTCALL ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG zend_error_noreturn(E_ERROR, "Only variables can be passed by reference"); } + if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { + return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); + } + SEPARATE_ZVAL_TO_MAKE_IS_REF(varptr_ptr); varptr = *varptr_ptr; Z_ADDREF_P(varptr); @@ -8715,28 +8734,33 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG ALLOC_ZVAL(tmp); INIT_PZVAL_COPY(tmp, array_ptr); array_ptr = tmp; + if (Z_TYPE_P(array_ptr) == IS_OBJECT) { + ce = Z_OBJCE_P(array_ptr); + if (ce && ce->get_iterator) { + Z_DELREF_P(array_ptr); + } + } } else if (Z_TYPE_P(array_ptr) == IS_OBJECT) { ce = Z_OBJCE_P(array_ptr); if (!ce || !ce->get_iterator) { Z_ADDREF_P(array_ptr); } + } else if (IS_VAR == IS_CONST || + ((IS_VAR == IS_CV || IS_VAR == IS_VAR) && + !Z_ISREF_P(array_ptr) && + Z_REFCOUNT_P(array_ptr) > 1)) { + zval *tmp; + + ALLOC_ZVAL(tmp); + INIT_PZVAL_COPY(tmp, array_ptr); + zval_copy_ctor(tmp); + array_ptr = tmp; } else { - if ((IS_VAR == IS_CV || IS_VAR == IS_VAR) && - !Z_ISREF_P(array_ptr) && - Z_REFCOUNT_P(array_ptr) > 1) { - zval *tmp; - - ALLOC_ZVAL(tmp); - INIT_PZVAL_COPY(tmp, array_ptr); - zval_copy_ctor(tmp); - array_ptr = tmp; - } else { - Z_ADDREF_P(array_ptr); - } + Z_ADDREF_P(array_ptr); } } - if (IS_VAR != IS_TMP_VAR && ce && ce->get_iterator) { + if (ce && ce->get_iterator) { iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC); if (iter && !EG(exception)) { @@ -22128,7 +22152,9 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDL } else { zval *valptr; - if (!(opline->extended_value & ZEND_ARG_SEND_SILENT)) { + if ((opline->extended_value & ZEND_ARG_COMPILE_TIME_BOUND) ? + !(opline->extended_value & ZEND_ARG_SEND_SILENT) : + !ARG_MAY_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { zend_error(E_STRICT, "Only variables should be passed by reference"); } ALLOC_ZVAL(valptr); @@ -22154,6 +22180,10 @@ static int ZEND_FASTCALL ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS zend_error_noreturn(E_ERROR, "Only variables can be passed by reference"); } + if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.u.opline_num)) { + return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU); + } + SEPARATE_ZVAL_TO_MAKE_IS_REF(varptr_ptr); varptr = *varptr_ptr; Z_ADDREF_P(varptr); @@ -22555,28 +22585,33 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS ALLOC_ZVAL(tmp); INIT_PZVAL_COPY(tmp, array_ptr); array_ptr = tmp; + if (Z_TYPE_P(array_ptr) == IS_OBJECT) { + ce = Z_OBJCE_P(array_ptr); + if (ce && ce->get_iterator) { + Z_DELREF_P(array_ptr); + } + } } else if (Z_TYPE_P(array_ptr) == IS_OBJECT) { ce = Z_OBJCE_P(array_ptr); if (!ce || !ce->get_iterator) { Z_ADDREF_P(array_ptr); } + } else if (IS_CV == IS_CONST || + ((IS_CV == IS_CV || IS_CV == IS_VAR) && + !Z_ISREF_P(array_ptr) && + Z_REFCOUNT_P(array_ptr) > 1)) { + zval *tmp; + + ALLOC_ZVAL(tmp); + INIT_PZVAL_COPY(tmp, array_ptr); + zval_copy_ctor(tmp); + array_ptr = tmp; } else { - if ((IS_CV == IS_CV || IS_CV == IS_VAR) && - !Z_ISREF_P(array_ptr) && - Z_REFCOUNT_P(array_ptr) > 1) { - zval *tmp; - - ALLOC_ZVAL(tmp); - INIT_PZVAL_COPY(tmp, array_ptr); - zval_copy_ctor(tmp); - array_ptr = tmp; - } else { - Z_ADDREF_P(array_ptr); - } + Z_ADDREF_P(array_ptr); } } - if (IS_CV != IS_TMP_VAR && ce && ce->get_iterator) { + if (ce && ce->get_iterator) { iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC); if (iter && !EG(exception)) { diff --git a/Zend/zend_vm_execute.skl b/Zend/zend_vm_execute.skl index 52592dac2..18d0e2935 100644 --- a/Zend/zend_vm_execute.skl +++ b/Zend/zend_vm_execute.skl @@ -18,13 +18,13 @@ ZEND_API void {%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC) zend_vm_enter: /* Initialize execute_data */ execute_data = (zend_execute_data *)zend_vm_stack_alloc( - sizeof(zend_execute_data) + - sizeof(zval**) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2) + - sizeof(temp_variable) * op_array->T TSRMLS_CC); + ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data)) + + ZEND_MM_ALIGNED_SIZE(sizeof(zval**) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2)) + + ZEND_MM_ALIGNED_SIZE(sizeof(temp_variable)) * op_array->T TSRMLS_CC); - EX(CVs) = (zval***)((char*)execute_data + sizeof(zend_execute_data)); + EX(CVs) = (zval***)((char*)execute_data + ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data))); memset(EX(CVs), 0, sizeof(zval**) * op_array->last_var); - EX(Ts) = (temp_variable *)(EX(CVs) + op_array->last_var * (EG(active_symbol_table) ? 1 : 2)); + EX(Ts) = (temp_variable *)(((char*)EX(CVs)) + ZEND_MM_ALIGNED_SIZE(sizeof(zval**) * op_array->last_var * (EG(active_symbol_table) ? 1 : 2))); EX(fbc) = NULL; EX(called_scope) = NULL; EX(object) = NULL; diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php index e99d0407a..f67296bf0 100644 --- a/Zend/zend_vm_gen.php +++ b/Zend/zend_vm_gen.php @@ -16,7 +16,7 @@ | Authors: Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ - $Id: zend_vm_gen.php,v 1.12.2.5.2.4.2.5 2008/12/31 11:15:35 sebastian Exp $ + $Id: zend_vm_gen.php 272370 2008-12-31 11:15:49Z sebastian $ */ $header_text = <<< DATA |
