Commit Graph

3495 Commits

Author SHA1 Message Date
Marcus Boerger
ea3eec9133 Need to update iterators handler table too. 2003-11-10 18:05:02 +00:00
Marcus Boerger
48d249de46 Fix those warnings 2003-11-10 16:23:12 +00:00
Marcus Boerger
296529b886 Split isset/isempty for object property and object dimension hooking. 2003-11-10 16:14:44 +00:00
Marcus Boerger
da6d68d919 Little iterator improvement: ability to store index in iterator 2003-11-10 16:13:38 +00:00
44dc9eb3e4 ChangeLog update 2003-11-09 01:32:00 +00:00
Marcus Boerger
e72339284f Add method reflection_class::implementsInterface()
Allow string & reflection_class in isSubclassOf()
2003-11-08 21:41:42 +00:00
Marcus Boerger
ab6b1adf0b Fix reflection_class::isSubclassOf() 2003-11-08 21:02:21 +00:00
Marcus Boerger
316854323d Handle exceptions in casting more gracefully.
This fixes bug #26166
2003-11-08 14:06:08 +00:00
a245f3b7a2 ChangeLog update 2003-11-08 01:32:13 +00:00
Marcus Boerger
f3d385a587 Make __autoload() faster 2003-11-07 11:47:50 +00:00
Marcus Boerger
5112a4ae24 Update Iterators: Call next at the correct point in time. 2003-11-07 10:47:47 +00:00
Marcus Boerger
77923b0eb1 Add missing initialization. 2003-11-07 10:22:16 +00:00
Marcus Boerger
1e44370536 Make these class entries available for inheriting classes 2003-11-07 09:33:06 +00:00
23d16aa99b ChangeLog update 2003-11-07 01:32:20 +00:00
Ilia Alshanetsky
c258f9c8a2 Fixed bug #26148 (Print the notice before modifying variable on type
mismatch).

# This only crashes in ZE1, however logic dictates that it may also crash
# in ZE2 because variable does not have a correct type.

Patch by: morten-bugs dot php dot net at afdelingp dot dk
2003-11-06 20:33:47 +00:00
c3b9e5811c ChangeLog update 2003-11-05 01:32:23 +00:00
Marcus Boerger
f9d13098e7 Prevent some SEGV's when Exceptions are thorown inside iterators. 2003-11-04 22:07:59 +00:00
Marcus Boerger
e912635f82 Removedouble efree call 2003-11-04 22:01:37 +00:00
Moriyoshi Koizumi
68bab385cb __tostring() handler should be binary-safe 2003-11-04 17:34:56 +00:00
Moriyoshi Koizumi
aef5f793b8 Fix one more test 2003-11-04 17:14:07 +00:00
Stanislav Malyshev
e69aaa8b05 add zend_iterators.c zend_interfaces.c to make 2003-11-04 15:27:08 +00:00
05dfdf1961 ChangeLog update 2003-11-01 01:31:52 +00:00
Moriyoshi Koizumi
2f27fe3574 Add test case for bug #26010 2003-10-31 17:12:16 +00:00
4adbd1dbf6 ChangeLog update 2003-10-31 01:32:21 +00:00
Stanislav Malyshev
44c3f0066b make CATCH opcode use "class" T like other opcodes do - via IS_CONST 2003-10-30 11:11:48 +00:00
Andi Gutmans
0b3fe78906 - Beta 2 2003-10-30 10:07:26 +00:00
3a65317f79 ChangeLog update 2003-10-30 01:33:04 +00:00
Moriyoshi Koizumi
973f606067 Use pretty macro instead. 2003-10-29 17:45:56 +00:00
e05a4acc8f ChangeLog update 2003-10-29 01:32:08 +00:00
Andi Gutmans
530789987f - Head up! I'm reverting the patch which allows for expressions in constant
- declerations. Allowing the access of other constants in this code is
- flawed. We are reverting back to PHP 4's static scalars.
- Don't worry if you get the following msg when compiling:
- "zend_language_parser.y contains 3 useless nonterminals and 22 useless rules"
- I didn't nuke the code in case we have some brilliant ideas after beta 2
2003-10-28 23:44:23 +00:00
Marcus Boerger
851a02e87f Give some freedon to c iterators but not in userspace. 2003-10-28 18:46:37 +00:00
Shane Caraveo
4bde74c3be fix crash in do_implement_interface when compiling
pear/PHPUnit/Framework/TestCase.php line 63
while only interface_gets_implemented is the issue in this instance, both
these vars were unitialized, causing potential other issues
2003-10-28 05:24:46 +00:00
38f336d464 ChangeLog update 2003-10-26 00:32:26 +00:00
Marcus Boerger
26bfe3f83a Add zend_make_callable() which allows to make zval's callable zval's.
At the moment this function only converts strings of the form class::method
to an array(class,method).
2003-10-25 22:58:06 +00:00
Marcus Boerger
da8ce17f7a This forces a better error message for non working clone calls. 2003-10-25 19:28:31 +00:00
Marcus Boerger
cad49f1fb0 And use things to throw an exception here 2003-10-25 19:13:06 +00:00
Marcus Boerger
4625529abe You shall not clone Exception instances 2003-10-25 19:07:09 +00:00
Marcus Boerger
fe3db4c7e9 You shall not clone reflection_xx instances 2003-10-25 19:06:35 +00:00
Marcus Boerger
6c05957aa2 Update 2003-10-25 15:11:49 +00:00
Marcus Boerger
52d2f8f579 Update 2003-10-25 14:54:10 +00:00
Sebastian Bergmann
e1fd9aed8f Fugbix typo. 2003-10-25 09:20:47 +00:00
Sebastian Bergmann
8bb30308f8 s/Throwable/Printable: Exception has become an internal class since I initially documented interfaces. 2003-10-25 09:18:23 +00:00
a82b296aa7 ChangeLog update 2003-10-25 00:32:55 +00:00
Andi Gutmans
23c00b0d5d - Fix typo 2003-10-24 22:13:00 +00:00
Marcus Boerger
b28db6a2d3 Revert accidental commit 2003-10-24 18:42:00 +00:00
Marcus Boerger
071eaf8576 Zend/ZEND_CHANGES 2003-10-24 18:24:28 +00:00
c32c3264ae ChangeLog update 2003-10-24 00:34:04 +00:00
Sebastian Bergmann
60f7896634 Add zend_interfaces.{c|h}. 2003-10-23 04:41:09 +00:00
a6210d2d75 ChangeLog update 2003-10-23 00:33:10 +00:00
Ilia Alshanetsky
5dac0007f3 Fixed bug #25922 (Crash in error handler when 5th argument is modified). 2003-10-22 23:42:55 +00:00
Marcus Boerger
8abb3bd448 Impement userspace iterator interfaces and tests. See tests for details
on the names.
2003-10-22 20:04:48 +00:00
Marcus Boerger
3c62b3b5ac Expand Interface C API.
In short: zend_class_entry->interface_gets_implemented()  allows to modify
the class entry of a class when an interface gets implemented.
2003-10-22 19:59:58 +00:00
Marcus Boerger
0bb59f337b The string conversion method should be named __toString() 2003-10-22 19:00:42 +00:00
5148ffdf90 ChangeLog update 2003-10-22 00:32:20 +00:00
Marcus Boerger
91099f3f4f Make this clear 2003-10-21 06:41:26 +00:00
06370c9132 ChangeLog update 2003-10-21 00:33:44 +00:00
Andi Gutmans
28957fd536 - Add comment from Timm 2003-10-20 22:02:10 +00:00
Marcus Boerger
c92b0202c7 Update 2003-10-20 10:26:03 +00:00
Marcus Boerger
445aa744e7 Update 2003-10-20 10:06:31 +00:00
634d8aa5ed ChangeLog update 2003-10-20 00:34:48 +00:00
Andi Gutmans
df033b58a0 - Nuke const in function parameters. I just can't remember why this exists
- and it seems no one else remembers either. It has no semantic meaning.
2003-10-19 08:38:48 +00:00
d9a61412c1 ChangeLog update 2003-10-19 00:32:44 +00:00
Marcus Boerger
b0b82541e8 Fix class/iterator relationship & handling 2003-10-18 18:43:31 +00:00
Marcus Boerger
15bfbc7619 Fallback to old behavior until we have a default iterator that respects
visibility we do the array trick.
2003-10-18 18:20:42 +00:00
Marcus Boerger
ac262baf19 Change order: Optional rewind() to end of structure 2003-10-18 14:56:47 +00:00
ba21b244b5 ChangeLog update 2003-10-18 00:32:33 +00:00
Marcus Boerger
65657103ad WS 2003-10-17 18:47:49 +00:00
Marcus Boerger
641a55a4dd Show if a class/object is iterateable 2003-10-17 17:51:01 +00:00
Marcus Boerger
25aa8b715e Added c-api for iterators
# After 4 Month work and endless discussions...
2003-10-17 17:19:44 +00:00
Marcus Boerger
43a948379a Fix showing final/abstract for classes 2003-10-17 08:15:48 +00:00
Ilia Alshanetsky
a2e95e4b91 Fixed formatting issue. 2003-10-17 02:47:44 +00:00
Ilia Alshanetsky
c66bcc7b74 Fixed if() condition. 2003-10-17 02:29:06 +00:00
3a6ea5b696 ChangeLog update 2003-10-16 00:34:03 +00:00
Marcus Boerger
4073a08488 Add oo support function zend_class_implements() 2003-10-15 06:24:17 +00:00
Marcus Boerger
d148ff770f Fix cast function 2003-10-15 06:23:07 +00:00
6c317f5ad9 ChangeLog update 2003-10-15 00:34:01 +00:00
Andi Gutmans
8e2a3ec24b - Argh, the suffering copy&paste can cause 2003-10-14 18:13:55 +00:00
Andi Gutmans
a24df5cf55 - Fix compile problem. 2003-10-14 17:26:36 +00:00
Andi Gutmans
01ba151cc3 - Fix the fix by making sure the new block is in the right free list. 2003-10-14 14:44:19 +00:00
Stanislav Malyshev
6a71c1d33f The freed one is a hashtable - may matter if Hashtables are allocated
differently
2003-10-14 14:36:23 +00:00
Andi Gutmans
1a6f1e8c6a - Support merging free block which was created by reallocing to smaller
- size. This should fix some performance issues. This code is still not
- thoroughly tested.
2003-10-14 14:23:12 +00:00
22c54d7ec0 ChangeLog update 2003-10-10 00:33:53 +00:00
Zeev Suraski
2ab30d7133 Allow foo::$bar() 2003-10-09 13:44:44 +00:00
71191d67cf ChangeLog update 2003-10-08 00:33:46 +00:00
Rasmus Lerdorf
9a88c2d62c MFB bison configure test fix 2003-10-07 22:39:54 +00:00
Zeev Suraski
146ba0e875 Fix bug #17997 (Warning when switch & reference are combined) 2003-10-07 16:04:08 +00:00
Zeev Suraski
d16d25b136 Fix the fix :)
Not thoroughly tested, but appears to work fine
2003-10-07 10:05:10 +00:00
Marcus Boerger
2c2af7c7ef Bugfix #25770 Segfault with PHP and bison 1.875 2003-10-07 09:33:20 +00:00
6e97d2fff2 ChangeLog update 2003-10-06 00:33:56 +00:00
Zeev Suraski
4de32429f5 Remove unused callback 2003-10-05 08:27:31 +00:00
Zeev Suraski
3f5acc73a5 Remove redundant callback, simplify API 2003-10-05 07:52:28 +00:00
Shane Caraveo
05152d3845 this little piggy broke lots of things...eg. _function_check_flag in reflection api. 2003-10-05 01:54:46 +00:00
ddbc673eb3 ChangeLog update 2003-10-04 00:32:39 +00:00
Moriyoshi Koizumi
4859431fc1 Fixed bug #24766 (strange result array from unpack()) 2003-10-03 22:41:43 +00:00
Moriyoshi Koizumi
149f786025 Bug #25738 (alloca() related problems on the Darwin platform) 2003-10-03 22:02:55 +00:00
Moriyoshi Koizumi
be5cbf9999 Ensure lval to have a *boolean* value. 2003-10-03 16:57:41 +00:00
foobar
db50cd251e Aligned configure help texts. 2003-10-03 05:24:33 +00:00
5b17050a79 ChangeLog update 2003-10-01 00:32:39 +00:00
Moriyoshi Koizumi
ddd49b34c8 Remove redundant '\n' 2003-09-30 00:32:41 +00:00
c88a26881e ChangeLog update 2003-09-27 00:33:03 +00:00
Hartmut Holzgraefe
075e66cc08 signed/unsigned compiler warning fixes 2003-09-26 08:09:56 +00:00
22c6591674 ChangeLog update 2003-09-26 00:32:52 +00:00
Georg Richter
47f6dc77c5 fixed compiler warning
removed dead code
2003-09-25 15:54:17 +00:00
Georg Richter
664078c100 changed ulong to long to avoid compiler warnings (comparison between signed and unsigned) 2003-09-25 15:38:35 +00:00
c8db2e0455 ChangeLog update 2003-09-23 00:32:08 +00:00
Ilia Alshanetsky
10def9a8ae Added missing format. 2003-09-22 04:21:44 +00:00
b5d828f92d ChangeLog update 2003-09-21 00:32:02 +00:00
Marcus Boerger
0266efb8b5 Add public array Reflection_Class::getDefaultProperties() 2003-09-20 14:22:48 +00:00
42758e6ebd ChangeLog update 2003-09-19 00:33:52 +00:00
Marcus Boerger
3efe102a48 Nuke vars no longer needed 2003-09-18 17:13:59 +00:00
Marcus Boerger
7b3e84871e Go with studlyCaps 2003-09-18 16:20:42 +00:00
Marcus Boerger
5b3bb16530 Go with studlyCaps 2003-09-18 12:09:55 +00:00
Marcus Boerger
f8a376fe8e Change tostring() into __toString() to match method name used in casting. 2003-09-18 11:55:57 +00:00
Marcus Boerger
71ba442768 Fallback to default behaviour for unsupported object type conversions 2003-09-18 11:50:05 +00:00
Marcus Boerger
d7fdf15a41 - Allow partial type conversion support for objects.
- Add support for object to string conversion from userspace by method
  __toString() and add a test.
2003-09-18 11:38:33 +00:00
Marcus Boerger
87045df4ce Add missing check 2003-09-18 10:21:38 +00:00
77669838d0 ChangeLog update 2003-09-18 00:32:25 +00:00
Marcus Boerger
909bd62a43 Show name of missing function as typed 2003-09-17 11:06:11 +00:00
Marcus Boerger
755c404d08 Use studlyCaps in exception class 2003-09-17 10:15:00 +00:00
Marcus Boerger
46b8801b35 Go with studlyCaps in error messages/backtrace/reflection output 2003-09-17 10:14:12 +00:00
328a6b862a ChangeLog update 2003-09-17 00:31:56 +00:00
Marcus Boerger
d2088841a4 - Make it clear whether it is an interface or a class
- Fix static properties
2003-09-16 19:31:45 +00:00
596ef9704b ChangeLog update 2003-09-16 00:32:09 +00:00
Marcus Boerger
6bf04aff5b Revert - need to look for a better solution 2003-09-15 21:00:38 +00:00
Marcus Boerger
16a816b92c Bugfix #25547 2003-09-15 20:20:14 +00:00
Zeev Suraski
36133c4d0b Simplify / fix 2003-09-15 08:13:34 +00:00
def79d3754 ChangeLog update 2003-09-15 00:34:42 +00:00
Marcus Boerger
9d7f2fd9f0 Bugfix #25335 2003-09-14 19:56:37 +00:00
Zeev Suraski
e0508c13bb Commit 64-bit fixes to the standard operators
by Ard Biesheuvel (abies@php.net)
2003-09-14 17:37:01 +00:00
Marcus Boerger
1c86e53204 Bugfix #25528 (by Ard Biesheuvel) 2003-09-14 01:20:25 +00:00
576951c129 ChangeLog update 2003-09-14 00:31:51 +00:00
Marcus Boerger
dc6163fe20 Fix warnings 2003-09-13 16:49:50 +00:00
3a9e32d7dc ChangeLog update 2003-09-12 00:32:10 +00:00
Stanislav Malyshev
5bcc602a7c add test 2003-09-11 17:07:43 +00:00
Stanislav Malyshev
b163778fee ws 2003-09-11 17:06:53 +00:00
Stanislav Malyshev
406ff728f1 Use scope from method, not from object 2003-09-11 17:04:26 +00:00
Marcus Boerger
6f78de02f0 Use type instead of constant 2003-09-11 10:26:47 +00:00
d73045166b ChangeLog update 2003-09-09 00:31:42 +00:00
Marcus Boerger
9d0506ec54 Fix property inheritance where a derived class inherits a public property
and owns it as an implicit public property already (noticed by Brad).
2003-09-08 23:25:57 +00:00
Marcus Boerger
62421b5201 Fix registering/derigistering of stdClass in ZTS and NON ZTS mode 2003-09-08 10:45:19 +00:00
3cbdfccaa8 ChangeLog update 2003-09-08 00:31:45 +00:00
Marcus Boerger
cdc5d69ec2 Fix foreach() called with non array 2003-09-07 23:09:30 +00:00
Stanislav Malyshev
22c6bc13c7 check for mach-o/dyld.h - needed for non-PHP ZE build 2003-09-07 13:49:15 +00:00
573abd7e50 ChangeLog update 2003-09-07 00:31:51 +00:00
Marcus Boerger
fdf3fbadf0 Disallow to changing the backtrace 2003-09-06 14:06:40 +00:00
Marcus Boerger
a986b3f6a4 Add missing newline if no static methods are available 2003-09-06 13:18:12 +00:00
Marcus Boerger
10ea007e39 - Internal functions shall be static
- Fix more nesting
2003-09-06 13:11:27 +00:00
Marcus Boerger
35529e1964 Fix logic 2003-09-06 13:02:16 +00:00
Marcus Boerger
c31fc7771a - Fix CS: {{{ / }}}
- Fix static reflection_*::export()
- Add class reflection_object which allows to show dynamic properties
2003-09-06 12:52:40 +00:00
Marcus Boerger
f5b1114449 Use %s where it makes more sense 2003-09-06 10:59:07 +00:00
b0aff5de7d ChangeLog update 2003-09-06 00:31:23 +00:00
Marcus Boerger
79a507e4eb Simplify reflection_property::__constructor() and fix property factory 2003-09-05 14:48:55 +00:00
Marcus Boerger
9a39cd5501 - Don't use resorved words as variable names.
- Improve several exception messages.
- Fix Reflection_Property::_construct() / getDeclaringClass()
# The above does not imply that properties are fixed when returned
# by other reflection api methods.
2003-09-05 14:35:31 +00:00
Marcus Boerger
34990374e1 Fix reflection_api::__construct() (noticed by Andrey) 2003-09-05 12:14:03 +00:00
Marcus Boerger
0e3918732e Provide string casting for exceptions by calling toString() 2003-09-05 11:40:30 +00:00
79e5df27af ChangeLog update 2003-09-05 00:32:09 +00:00
Marcus Boerger
95649ab260 Tests show updating consts must happen once at runtime (revert optimization).
Add tests for static properties.
2003-09-04 16:00:01 +00:00
Marcus Boerger
4e7a782f3a Add reflection_class::getstaticproerties() 2003-09-04 15:57:25 +00:00
e2c873fa0c ChangeLog update 2003-09-04 00:32:10 +00:00
Marcus Boerger
be8287e55c Partly revert and reintroduce hash table entries for the ctor.
# Obviously not the brightest idea i had today.
2003-09-03 21:21:18 +00:00
Marcus Boerger
5569d7fae9 Nuke unused variable, too 2003-09-03 20:28:13 +00:00
Marcus Boerger
61b96d1fe2 - Inheritance applies to __clone() too.
- No need to add additional functions for the constructor.
  The handler uses the pointer as intended and doesn't look the the name.
2003-09-03 20:26:01 +00:00
Marcus Boerger
91ff8d67e7 Cannot turn a static property into a non static one and vice versa 2003-09-03 19:28:46 +00:00
Marcus Boerger
7bbbd5035d Fix handling of static properties initialized to arrays 2003-09-03 18:01:22 +00:00
Marcus Boerger
1d21d48e8a Add missing error messages when violating static property inheritance rules. 2003-09-03 16:34:35 +00:00
Marcus Boerger
1b39a5aa2c Fix static properties.
#
# There's only an errormessage missing which i'll wommit as soon as i find out
# how to do it best. But besides that damn message everything works now and all
# inheritance rules apply.
#
2003-09-03 16:13:40 +00:00
Marcus Boerger
1d3d396fea Allow redeclareing a protected property as public.
#
# The only known thing left at this moment is that the protected static members
# of a base class is different then the redeclared public property. I tried
# to remove both new and old static properties in the derived class and copy
# the base property with the new name. But for reasons i have to check later
# that didn't result in the expected behavior. Anyway we would need a warning
# if someone tries to change the value of a static property in a derived class.
#
2003-09-03 10:58:55 +00:00
Zeev Suraski
93f0ee5fda Revert bogus patch
One must *never* use E_CORE_* error levels!
2003-09-03 08:39:43 +00:00
Marcus Boerger
2f6e25da79 Clearly distinguish between Const, Static and Other members.
# Const and static props have more in common then static and dynamic/implicit.
2003-09-03 00:38:13 +00:00
3b2a06382b ChangeLog update 2003-09-03 00:31:52 +00:00
Marcus Boerger
d1b74000ad Fix error messages 2003-09-02 23:12:37 +00:00
Marcus Boerger
e569b5aee5 Allow redeclaring of protected properties as public (for internal classes).
# See http://news.php.net/article.php?group=php.zend-engine.cvs&article=1737
# for the part not fixed (e.g. property redeclaration of userland classes)
2003-09-02 20:49:42 +00:00
Marcus Boerger
560d3ab36a Use appropriate function for property name unmangling.
# Make Andrey happy
2003-09-02 14:46:02 +00:00
Marcus Boerger
7148cb9e73 Make these static as noticed by Andrey 2003-09-02 14:11:53 +00:00
Marcus Boerger
9702c70a35 Synch/Unify error messages related to function/method calls 2003-09-02 14:08:59 +00:00
Marcus Boerger
469b746b4d Fix error level 2003-09-02 13:28:34 +00:00
Marcus Boerger
0f3374615b Currently we cannot support static ctor/dtor 2003-09-02 13:26:25 +00:00
Marcus Boerger
bd86aff005 These are implicit properties as denoted by the flag. Dynamic properties only
exist in one single object and currently reflection api is not capable of
showing those.
2003-09-02 13:12:47 +00:00
Marcus Boerger
f03801bdd6 Don't loose information if no parameters were shown.
# Noticed by Sebatian Bergmann
2003-09-01 21:40:58 +00:00
Marcus Boerger
bca0019d43 Fix initial buffer size 2003-09-01 21:14:09 +00:00
Marcus Boerger
2b19c5435e Fix class handling of invoke 2003-09-01 21:11:38 +00:00
Marcus Boerger
d7fa986db8 Show {main} and prevent showing empty stack traces 2003-09-01 20:54:48 +00:00
Marcus Boerger
0036ed9064 Clearify this 2003-09-01 20:02:47 +00:00
Marcus Boerger
bef3e13caf Add missing '}' 2003-09-01 19:47:34 +00:00
Sebastian Bergmann
07ef05adb5 Revert what I think is an accidental commit by Marcus that slipped in at revision 1.23. Declaring getMessage() as final is a PITA, so I hope it will not come to that. 2003-09-01 17:26:57 +00:00
Marcus Boerger
cbd08869f2 Add static reflector::export() and its implementations.
#
# This makes the main reflection use a lot easier.
#
2003-09-01 16:13:24 +00:00
Marcus Boerger
a389286b99 Set the params in the struct 2003-09-01 15:09:57 +00:00
Marcus Boerger
c7f1c2f74f Invalidate exception in this case too 2003-09-01 13:05:50 +00:00
Marcus Boerger
1257b407a6 WS 2003-09-01 13:04:55 +00:00
ff647c501f ChangeLog update 2003-09-01 00:31:37 +00:00
Marcus Boerger
4506d4ea24 Don't repeat first const count(consts) time 2003-08-31 15:47:48 +00:00
Marcus Boerger
660c14e74a Beautify output 2003-08-31 15:30:13 +00:00
Marcus Boerger
4af0621036 Add reflection_parameters, patch by Timm Friebe 2003-08-31 15:06:54 +00:00
Marcus Boerger
f9ee319152 Excluded chars < 32 when displaying string parameters that would obliterate output. 2003-08-31 12:40:29 +00:00
Zeev Suraski
f1b80b9210 Attempt at fixing the linkage problem in Win32 2003-08-31 12:38:50 +00:00
Marcus Boerger
fb4a63a07d Synch error message with other one to fix tests 2003-08-31 11:38:31 +00:00
Marcus Boerger
8376b7eff7 Check whether we may access tat union 2003-08-31 11:21:30 +00:00
Marcus Boerger
d15ad4609d Revisited: Replace the non portable code by spprintf 2003-08-31 10:52:23 +00:00
Marcus Boerger
ade319ac54 Using zend_spprintf should be faster here 2003-08-31 10:06:13 +00:00
Marcus Boerger
d45fd8a1b1 Make vspprintf available as zend utility function. Use it in exception output. 2003-08-31 09:35:54 +00:00
c9a69abe25 ChangeLog update 2003-08-31 00:31:46 +00:00
Marcus Boerger
00fddc9b83 Actually fetch the parameter 2003-08-30 23:55:04 +00:00
Marcus Boerger
f1c92fa4c5 - Calling abstract methods should be a error for consistency reason.
- So in reflection_api we use the reflection_exception again.
2003-08-30 23:51:42 +00:00
Marcus Boerger
80c0cdf7f7 Even though it is ignored this should be correct 2003-08-30 19:01:10 +00:00
Marcus Boerger
655f2dc572 Add frame numer and finally display stack trace in the message.
#
# And voila - nice useable and helpfull exceptions in PHP.
# Now we need to tell ppl 'anyway don't use them if possible'.
#
2003-08-30 18:58:40 +00:00
Marcus Boerger
c80eb4573f Add exception::traceAsString() and exception::toString() 2003-08-30 18:28:24 +00:00
Marcus Boerger
6c69b28790 fci.function_table & fci.function_name are not needed since we use zend_fcall_info_cache 2003-08-30 13:47:27 +00:00
Marcus Boerger
e679504861 Be precise 2003-08-30 13:38:23 +00:00
Marcus Boerger
49a538d054 Actually using fcc would be a good idea 2003-08-30 12:58:35 +00:00
Marcus Boerger
f7f49e4584 - The compiler can't detect all abstract function calls so we need to check.
# In this case throwing a dedicated exception is better than the error we
# show when the compiler can detect the abstract call because its run-time.
2003-08-30 11:40:37 +00:00
Marcus Boerger
ad31a021bc Make those final (see comment) 2003-08-30 11:33:41 +00:00
707accd337 ChangeLog update 2003-08-30 00:31:40 +00:00
Marcus Boerger
047a574e6c - Add zend_merge_properties() which is designed to serve *_fetch_object().
- Explain drawbacks of object_and_properties_init and zend_merge_properties.
#
# I guess we can live with the purity problem of potentially calling __set()
# of an object which wasn't already ctored.
#
2003-08-29 23:27:22 +00:00
Marcus Boerger
50040c8ae9 - Use zend_fcall_info_cache in invoke() to improve speed.
# This also fixes the problem with calling static methods.
2003-08-29 21:46:12 +00:00
Zeev Suraski
aaa1cdca31 Fix a problem in implicit public properties and inheritance 2003-08-29 08:51:43 +00:00
Sascha Schumann
dcfb7638bc improve a number of zend_debug format strings 2003-08-29 07:34:37 +00:00
a92363f694 ChangeLog update 2003-08-29 00:31:41 +00:00
Marcus Boerger
bdd2d4aacf Need to tell zend_fetch_debug_backtrace() whether to skip top function or not.
# And i wondered why the trace wasn't rally accurate.
2003-08-29 00:16:00 +00:00
Marcus Boerger
b3f3ddd1b5 Add public read access to protected 2003-08-28 23:43:56 +00:00
Marcus Boerger
fa70708d15 Add zend_throw_exception_ex() which allows to format exception messages.
#
# Since we don't have any portable way of printing into a dynamic buffer i
# used a stack buffer of 1K (just like the error printing) and used a dynamic
# buffer in case the necessary function is available.
#
2003-08-28 22:56:41 +00:00
Marcus Boerger
12376a2270 Classe tables work this way 2003-08-28 22:53:24 +00:00
Marcus Boerger
8d3620aea8 - Split debug_backtrace() into lowlevel c function and php function wrapper
- Add trace property to default method based on new zend_fetch_debug_backtrace
# Unforunatley the handler for uncaught exception can't show this backtrace
# simply because there is currently no way to do it. If i can think of a
# solution i'll add it. Until them i am open to any ideas/help.
2003-08-28 20:35:54 +00:00
Sascha Schumann
744c68e447 older gccs don't understand attribute((format)) on function pointers 2003-08-28 17:31:31 +00:00
Sascha Schumann
83bd1f4398 ZEND_GCC_VERSION should always be defined to a number so we can use
simple comparisons all the time.
2003-08-28 17:04:16 +00:00
Sascha Schumann
2e36578cfd Add format attribute to a number of functions
Kill a few warnings
2003-08-28 16:41:20 +00:00
Sascha Schumann
169d43e5fa cleanup & centralize ZEND_GCC_VERSION and ZEND_ATTRIBUTE_MALLOC so that
they can be used by downstream applications
2003-08-28 14:53:02 +00:00
Sascha Schumann
f065aba3ba Enable attribute((malloc)) for GCC 2.96 2003-08-28 11:55:39 +00:00
Sascha Schumann
6d7e56a0c8 GCC 2 does not know about malloc yet. 2003-08-28 06:17:05 +00:00
Sascha Schumann
cf1f6e3c4c provide attribute((malloc)) where appropiate 2003-08-28 05:50:15 +00:00
8a00475722 ChangeLog update 2003-08-28 00:32:00 +00:00
Marcus Boerger
43836e97c5 Nuke unused variable
# I should have taken Timm's patch
2003-08-27 20:48:41 +00:00
Marcus Boerger
7f5196953c Fix reflection_class::newInstance() 2003-08-27 20:45:34 +00:00
e01eddf01d ChangeLog update 2003-08-26 00:32:02 +00:00
foobar
28447d62da - Fixed bug #25240 (spaces before pre-processor directives) 2003-08-25 23:24:29 +00:00
15592ba096 ChangeLog update 2003-08-25 00:32:07 +00:00
Marcus Boerger
f9cebab0cb Add missing check 2003-08-24 22:45:59 +00:00
Marcus Boerger
9603e44eb6 Fix memory source of string duplication for non internal properties 2003-08-24 18:47:11 +00:00
Marcus Boerger
19ec7a09fc - Provide appropriate way to destroy internal zval's.
- Allow internal zval's of type string and disallow complex types.
- Define the default string for extensions at class level instead of ctor.
2003-08-24 17:32:47 +00:00
Marcus Boerger
cec053f707 Don't identify alias'ed functions 2003-08-24 16:35:58 +00:00
Zeev Suraski
ea36fc4143 Use ""'s if you want empty strings. We want to crash on errors. 2003-08-24 16:27:01 +00:00
Zeev Suraski
a9107e2be1 Use pemalloc() 2003-08-24 16:17:45 +00:00
Marcus Boerger
b84e9db3b8 Allow NULL, too 2003-08-24 16:13:23 +00:00
Zeev Suraski
0ac5bbd780 Never, ever, overwrite the refcount element of a connected zval! 2003-08-24 15:59:19 +00:00
Marcus Boerger
e44d0f526c Add dedicated reflection_exception 2003-08-24 15:07:54 +00:00
Marcus Boerger
4e5e7502b8 Allow to throw instances of classes derived from exception 2003-08-24 15:07:00 +00:00
Marcus Boerger
d3473d1f58 - Provide a unified way to display uncaught exceptions, which shows
file/line/message info if possible.
- Add zend_eval_string_ex() to be able to handle exceptions in eval'd code.
- Use above function to fix memleaks in CLI.
2003-08-24 13:10:03 +00:00
Marcus Boerger
669603f69d Make invoke() work 2003-08-24 12:07:13 +00:00
Marcus Boerger
96d4ac7a3f zend_parse_parameters 'O' works the way we need here 2003-08-24 11:34:01 +00:00
Marcus Boerger
418a7f980c Not needed 2003-08-24 11:28:53 +00:00
Marcus Boerger
d4cf96c524 Make use method macros 2003-08-24 11:25:08 +00:00
Marcus Boerger
eef1b7b1e8 One of PPP is needed, too 2003-08-24 11:24:10 +00:00
Marcus Boerger
bd07968bef - Add Reflection_Function::isAlias
- Use ZEND_ME/ZEND_METHOD
- Fix static entries
2003-08-24 11:11:55 +00:00
Marcus Boerger
1c2512ddea - Add fn_flag ZEND_ACC_ALIAS
- Unify way of function_entry generation by new macro ZEND_FENTRY
2003-08-24 11:09:45 +00:00
Marcus Boerger
3605be8a29 Fix fn_flags handling 2003-08-24 11:07:30 +00:00
Marcus Boerger
38805f2809 Add property read code and use that in default exception class 2003-08-24 00:36:53 +00:00
b8799ff085 ChangeLog update 2003-08-24 00:32:03 +00:00
Marcus Boerger
c3d60fd7ff Allow zend_throw_exception() to also set the exception code 2003-08-23 19:48:52 +00:00
Marcus Boerger
96fa63d6bf Exception has 4 protected default properties (message,code,file,line).
They are all initialized at c-level constructor correctly.
2003-08-23 19:41:22 +00:00
Marcus Boerger
baaa4c903d Internal classes can now have default properties. 2003-08-23 19:37:39 +00:00
Marcus Boerger
5e77dc44dc Show ctor/dtor information and those don't return anything 2003-08-23 15:47:23 +00:00
Marcus Boerger
fbda310a41 - Flag ctor/dtor methods
- Use this to prevent memleaks when an exception gets thrown in ctors.
# I added the dtor flags for consistency, atm a compareable check in
# isn't necessary for destruction. But anyway i'll use this for the
# Relection API too.
2003-08-23 15:38:58 +00:00
Marcus Boerger
43334207ab Make exception code more robust 2003-08-23 14:22:28 +00:00
d696f1267a ChangeLog update 2003-08-23 00:31:15 +00:00
Ilia Alshanetsky
f94b536bc8 Replace *magic number* with a much nicer define. 2003-08-22 18:50:12 +00:00
Ilia Alshanetsky
c29e30d3af Set 2147483647 as the module number of user defined constants
Fixed a few bugs and cleaned up get_defined_constants().
2003-08-22 02:08:10 +00:00
d963f8fea3 ChangeLog update 2003-08-22 00:31:48 +00:00
Marcus Boerger
0e32aaa8c6 Add function 'zend_throw_exception(char *message, int duplicate TSRMLS_DC);'
to provide an easy way to throw exceptions for extension developers.
2003-08-21 23:32:13 +00:00
Marcus Boerger
fda38bf2ff If ce not given than any object would do 2003-08-21 15:24:33 +00:00
Marcus Boerger
80b3498839 Paramspec 'O' / zend_parse_method_params(): only if given check the class type 2003-08-21 14:39:17 +00:00
a060bc75c7 ChangeLog update 2003-08-21 00:31:53 +00:00
Zeev Suraski
1e70f45112 adhere to silence 2003-08-20 23:27:04 +00:00
Marcus Boerger
56e8757d77 Fix counting number of leaks 2003-08-20 22:15:01 +00:00
90150d8625 ChangeLog update 2003-08-20 00:31:10 +00:00
Wez Furlong
1a40feb965 fix build 2003-08-19 01:15:47 +00:00
81ec251619 ChangeLog update 2003-08-19 00:30:59 +00:00
Wez Furlong
ef498a27b8 linkage for C++ 2003-08-18 23:19:27 +00:00
Zeev Suraski
6ab9c1a336 Prevent access to internal engine functionality 2003-08-18 23:11:58 +00:00
Zeev Suraski
49c4866a47 - Improve tracking
- Fix several overloading issues
2003-08-18 22:31:11 +00:00
Zeev Suraski
0dba58c373 Improve tracking 2003-08-18 21:17:26 +00:00
Zeev Suraski
76aaeebdf0 Improve tracking 2003-08-18 20:44:12 +00:00
Zeev Suraski
b5786d4220 ws 2003-08-18 20:43:09 +00:00
4863dd5323 ChangeLog update 2003-08-18 00:31:11 +00:00
Marcus Boerger
744dd20520 Fix warnings 2003-08-17 19:14:30 +00:00
Marcus Boerger
717b5afe1d Fix warnings 2003-08-17 18:56:54 +00:00
Sascha Schumann
602d1b0045 One bit fields need to be unsigned, otherwise there is no storage for
the sign bit

"A signed bit field has a length of 1 bit."
2003-08-17 13:49:52 +00:00
Sascha Schumann
c7d9be97ca explicitly cast size_t to zend_uint to avoid warnings on 64 bit platforms. 2003-08-17 13:45:51 +00:00
Marcus Boerger
6dbc0bdc35 Remove unnecessary if 2003-08-17 12:38:27 +00:00
Marcus Boerger
1e17ebe047 Put the code where it belongs - fixes a warning and confusion 2003-08-17 12:27:33 +00:00
Marcus Boerger
9c68f33b51 Implement a TBD: JMP to the end of foreach 2003-08-17 12:17:34 +00:00
Marcus Boerger
f2d4e4ca48 WS 2003-08-17 12:16:10 +00:00
Marcus Boerger
82050ae8bc - Show class names in error messages when dealing with methods
- Mark class as abstract if it gets an abstract method
2003-08-17 00:57:35 +00:00
eca2582760 ChangeLog update 2003-08-17 00:31:43 +00:00
Marcus Boerger
fe1a086d19 Simplify abstract method declaration 2003-08-16 20:46:22 +00:00
Marcus Boerger
7a12eb8a2d WS 2003-08-16 20:12:01 +00:00
beb51466d5 ChangeLog update 2003-08-16 00:31:07 +00:00
Sascha Schumann
b29b4441db Restrict scope of inline functions to compile unit
Submitted by: Jason Greene <jason@inetgurus.net>
2003-08-15 21:02:35 +00:00
5eb3bb00db ChangeLog update 2003-08-14 00:31:18 +00:00
31a0a30d9d ChangeLog update 2003-08-13 23:27:30 +00:00
ea2632506d ChangeLog update 2003-08-13 23:27:28 +00:00
808e49fea0 ChangeLog update 2003-08-13 23:24:59 +00:00
4713ec290a ChangeLog update 2003-08-13 23:20:59 +00:00
Marcus Boerger
ca9c03b504 Add missing entry 2003-08-13 07:17:16 +00:00
Marcus Boerger
e08aedf5ff - Show classes in case of methods
- Using sprintf here was a bad idea
2003-08-13 07:02:44 +00:00
e58a46c2ae ChangeLog update 2003-08-13 00:30:30 +00:00
Zeev Suraski
d2971e506c Remove bogus patch - the number of elements is unrelated 2003-08-12 06:21:02 +00:00
dc36db0715 ChangeLog update 2003-08-12 00:30:27 +00:00
Marcus Boerger
f77f977d0e Bugfix 21918 2003-08-11 20:14:25 +00:00
Masaki Fujimoto
ab9dcec292 - added script encoding support to Zend Engine 2.
this enables ZE2 to gracefully parse scripts written in UTF-8 (with BOM),
  UTF-16, UTF-32, Shift_JIS, ISO-2022-JP etc... (when configured with
  '--enable-zend-multibyte' and '--enable-mbstring')
2003-08-11 05:24:42 +00:00
ad29f2f006 ChangeLog update 2003-08-11 00:30:22 +00:00
Marcus Boerger
2bbf4ad261 Bugfix #24637 __destruct not called 2003-08-10 23:59:35 +00:00
ae4b25fe88 ChangeLog update 2003-08-10 00:30:29 +00:00
Moriyoshi Koizumi
fe489dcb4f Fix segfault when a referenced parameter is specified with typehint.
Result of the node will never be used because verify_instanceof handler has
been eliminated.
2003-08-09 19:29:38 +00:00
Marcus Boerger
d4aa155d25 Precise destructor errors 2003-08-09 14:32:33 +00:00
2d8509fe20 ChangeLog update 2003-08-08 00:30:25 +00:00
Moriyoshi Koizumi
35ffd45c26 Add missing right parensis 2003-08-07 19:36:13 +00:00
Zeev Suraski
5b312b571e Clarify use of original_function_state_ptr 2003-08-07 07:37:19 +00:00
Marcus Boerger
e9a4c91ca4 - Fix warnings
- Fix code
2003-08-07 07:17:34 +00:00
0f94f538ff ChangeLog update 2003-08-07 00:30:30 +00:00
Zeev Suraski
0a83ebfd56 clarify :) 2003-08-06 07:38:56 +00:00
26b85413ea ChangeLog update 2003-08-06 00:30:27 +00:00
foobar
cc011660e7 Fix the build 2003-08-05 23:50:59 +00:00
Zeev Suraski
92b4013e8d Try to put an end to the endless number of call_user_function variants.
zend_call_function() now takes a structure that should contain all of the
necessary information.  If further information is necessary in the future,
then we'll be able to add it without having to introduce a new function.

As for caching - the 2nd, optional argument is a struct that can hold all
of the information that's necessary to invoke the function, including its
handler, scope and object it operates on (if any).  Note that you may only
use a cache if the arguments you provide to zend_call_function() are
identical to the ones of the last call, except for the argument and return
value information.


The recently introduced fast_call_user_function() was removed

I fixed most of the places that used fast_call_user_function() to use caching
but there are still some that need to be fixed (XML and reflection)
2003-08-05 10:24:40 +00:00
Stanislav Malyshev
8547de3f16 fix syntax 2003-08-05 08:03:26 +00:00
Stanislav Malyshev
f572897dea remove stack clean - it makes trouble 2003-08-05 07:56:49 +00:00
abd7612009 ChangeLog update 2003-08-05 00:30:17 +00:00
Marcus Boerger
de32c1de56 Fix ZTS 2003-08-04 19:57:53 +00:00
Marcus Boerger
65557ef672 Nuke unused variables 2003-08-04 19:56:12 +00:00
Marcus Boerger
3597704c64 Add function/method parameter reflection 2003-08-04 19:37:08 +00:00
Ilia Alshanetsky
1007b0a826 Fixed bug #23104 (hash position of static arrays not being reset) 2003-08-04 17:10:52 +00:00
Stanislav Malyshev
2884e8a715 oops. forgot function 2003-08-04 11:03:38 +00:00
Stanislav Malyshev
7cb1730293 fix crash #24842 2003-08-04 11:02:53 +00:00
Stanislav Malyshev
b6ff804cfe fix leaks: bug #24831 2003-08-04 10:40:05 +00:00
Stanislav Malyshev
a3dc90d8d0 use get_obj_zval_ptr 2003-08-04 10:30:42 +00:00
Stanislav Malyshev
3586a6a43b add test 2003-08-04 09:31:58 +00:00
Stanislav Malyshev
4d51526350 Fix #24884 - clone $this 2003-08-04 09:10:52 +00:00
Zeev Suraski
1959133fb3 Simplify code using XOR 2003-08-04 07:53:09 +00:00
Zeev Suraski
fe9b5870af Add logical XOR, proves to be quite useful lately 2003-08-04 07:52:36 +00:00
Zeev Suraski
6f53e48bb9 This check shouldn't be necessary 2003-08-04 07:52:09 +00:00
f1d8c1c448 ChangeLog update 2003-08-04 00:30:32 +00:00
Marcus Boerger
1f8fd69e78 Fix crash 2003-08-03 22:28:14 +00:00
Marcus Boerger
538aad24e3 Fix test and add missing initialization 2003-08-03 22:03:52 +00:00
Zeev Suraski
ef5a79bfed Ensure functions have a valid access level 2003-08-03 21:06:23 +00:00
Zeev Suraski
e3f4147931 Default to public 2003-08-03 21:04:39 +00:00
Marcus Boerger
8c614ddda4 Not needed, will be copied from ptr->flags later 2003-08-03 20:49:27 +00:00
Marcus Boerger
bdf84d4e12 Add missing arg info 2003-08-03 19:25:03 +00:00
Moriyoshi Koizumi
fb6300dd6c Style & WS fixes 2003-08-03 19:20:45 +00:00
Zeev Suraski
f8bbafd604 ntroduce infrastructure for supplying information about arguments,
including:

- Whether or not to pass by ref (replaces the old arg_types, with arg_info)
- Argument name (for future use, maybe introspection)
- Class/Interface name (for type hints)
- If a class/interface name is available, whether to allow a null instance

Both user and builtin functions share the same data structures.

To declare a builtin function that expects its first arg to be an instance
of class 'Person', its second argument as a regular arg, and its third by
reference, use:

ZEND_BEGIN_ARG_INFO(my_func_arg_info, 0)
    ZEND_ARG_OBJ_INFO(0, someone, Person, 1)
    ZEND_ARG_PASS_INFO(0)
    ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();

and use my_func_arg_info as the arg_info parameter to the ZEND_FE() family
of macros.

The first arg to each ZEND_ARG_*() macro is whether or not to pass by ref.

The boolean arg to ZEND_BEGIN_ARG_INFO() tells the engine whether to treat
the arguments for which there's no explicit information as pass by reference
or not.
The boolean argument to ZEND_ARG_OBJ_INFO() (4th arg) is whether or not to allownull values.
2003-08-03 17:40:44 +00:00
Zeev Suraski
7112d3a3f8 No need for this initialization - this function initializes all of the
elements of zend_internal_function
2003-08-03 10:32:40 +00:00
Zeev Suraski
8b4bd4a8ec Clean up. extended_value can only contain either ZEND_UNSET_DIM or
ZEND_UNSET_OBJ.
2003-08-03 08:23:25 +00:00
Zeev Suraski
9d7122fb53 Generalize fetch_class 2003-08-03 08:21:08 +00:00
973b85672b ChangeLog update 2003-08-03 00:30:27 +00:00
Marcus Boerger
4f1e331c4d Initialize all struct members: Necessary for reflection 2003-08-02 19:03:14 +00:00
Marcus Boerger
04c90c8738 Show interfaces 2003-08-02 14:22:18 +00:00
Wez Furlong
0b6f7bddf4 fix usage of instanceof here too 2003-08-02 11:43:55 +00:00
Marcus Boerger
4fa6eac1f8 Fix warning 2003-08-02 11:39:15 +00:00
be9986eb8e ChangeLog update 2003-08-02 00:30:27 +00:00
Wez Furlong
5c4de2664c better fix... 2003-08-01 17:51:56 +00:00
Wez Furlong
ad12b3da82 Fix "O" format for zend_parse_parameters 2003-08-01 16:48:11 +00:00
6e49dd99c8 ChangeLog update 2003-08-01 00:30:42 +00:00
Zeev Suraski
4f6b315211 Use instanceof_function() 2003-07-31 16:30:15 +00:00
Zeev Suraski
accd6b623b Finish the array overloading patch 2003-07-31 09:06:11 +00:00
Zeev Suraski
d95a6916de Cleanup 2003-07-31 08:24:55 +00:00
Andi Gutmans
7055fda013 - Fix logic. It was the wrong way around. 2003-07-31 05:08:59 +00:00
8d75e7082d ChangeLog update 2003-07-31 00:30:27 +00:00
Andi Gutmans
8264eedc48 - Fix problem with hash when updating same bucket with data of different
sizes one after another.
- Fix number of arguments to read_dimension.
2003-07-30 19:47:39 +00:00
Zeev Suraski
68fa4e50f8 Get rid of an opcode 2003-07-30 17:49:27 +00:00
Zeev Suraski
f41f62c2ff Support overloading of $foo["bar"] += "baz" 2003-07-30 17:40:54 +00:00
Zeev Suraski
c0b46739ca Improve array overloading - support unset($foo["bar"]) 2003-07-30 17:12:06 +00:00
Zeev Suraski
4839ce5952 Remove garbage 2003-07-30 17:02:41 +00:00
Zeev Suraski
2fd4ffce17 Add exec_finished() callback for modules - this is the last place where the
modules may touch the symbol table reliably
2003-07-30 16:13:52 +00:00
815be4e5c6 ChangeLog update 2003-07-30 00:30:26 +00:00
Ilia Alshanetsky
7b18132dba Test case for bug #22836. 2003-07-29 17:56:50 +00:00
foobar
c50fbaf69a Remove the obfuscation caused by the double "#ifdef ZTS" 2003-07-29 01:30:59 +00:00
8aef486417 ChangeLog update 2003-07-28 00:30:27 +00:00
Stanislav Malyshev
57b12285de fix compare 2003-07-27 16:43:05 +00:00
Stanislav Malyshev
7b1bbc85bc use zend_binary_strncasecmp 2003-07-27 16:39:35 +00:00
Stanislav Malyshev
47fef22bc5 change shutdown order so that dtors would coexist with object error handlers 2003-07-27 15:59:37 +00:00
Stanislav Malyshev
1cc89effdb clean the right one 2003-07-27 14:02:46 +00:00
Stanislav Malyshev
5bfd386bc3 make shutdown more granular so in case some dtor goes ape we still
can shut down cleanly
2003-07-27 13:47:58 +00:00
Stanislav Malyshev
9fa2d52310 make clone and throw coexist peacefully 2003-07-27 13:20:31 +00:00
Stanislav Malyshev
6bea4ca1b0 add test 2003-07-27 12:50:56 +00:00
Stanislav Malyshev
c3c136ea4b fix #24635: clean hash before putting into cache 2003-07-27 12:46:14 +00:00
Stanislav Malyshev
399db3c846 fix crash #24550 2003-07-27 12:25:50 +00:00
Stanislav Malyshev
91b4bca976 add test 2003-07-27 12:07:23 +00:00
Stanislav Malyshev
5724c7a66c fix leaks with class constants (bug #24699) 2003-07-27 12:03:54 +00:00
Stanislav Malyshev
78f8ca6e55 make __clone call case insensitive, just as other calls are 2003-07-27 11:42:21 +00:00
29df7213cb ChangeLog update 2003-07-25 00:30:31 +00:00
foobar
e03b0dea7d cleanup (CS+ws) 2003-07-24 17:07:40 +00:00
Zeev Suraski
0e0936fa59 Fix expectations :) 2003-07-24 17:00:17 +00:00
Zeev Suraski
b54ae17904 Fix logic and comments in ASSIGN_DIM 2003-07-24 16:51:35 +00:00
Zeev Suraski
55097d1dcf Fix another HANDLE_NUMERIC bug. Looks like you opened Pandora's box, Sterling ;) 2003-07-24 13:14:57 +00:00
Zeev Suraski
2109ab3438 Fix each() binary safety for keys 2003-07-24 13:06:25 +00:00
Zeev Suraski
0610515703 Fix assignments to numeric array indices 2003-07-24 12:56:05 +00:00
Zeev Suraski
7928e763d2 Remove useless code 2003-07-24 12:51:07 +00:00
Zeev Suraski
03b6af07eb Support references in foreach()
Syntax:
  foreach ($arr as &$val)
  foreach ($arr as $key => &$val)
2003-07-24 12:38:33 +00:00
Zeev Suraski
e25d5e7f7a Fix binary safety in foreach() keys (fixes bug #24783) 2003-07-24 08:36:39 +00:00
Zeev Suraski
9b13202723 Make print_r() binary safe with keys 2003-07-24 08:24:07 +00:00
005fc4eddd ChangeLog update 2003-07-24 00:30:26 +00:00
Stanislav Malyshev
237116aa27 Remove namespace leftovers 2003-07-23 08:58:46 +00:00
Zeev Suraski
e89977f9d9 Go back to ZE1-like code 2003-07-23 08:56:34 +00:00
Sebastian Bergmann
786afb48cb Fix segfault. Patch by Timm Friebe <thekid@thekid.de>. 2003-07-23 04:02:26 +00:00
a480901c9f ChangeLog update 2003-07-23 00:30:29 +00:00
Marcus Boerger
6079d4dc1b Fix for the moment 2003-07-22 20:53:56 +00:00
Zeev Suraski
cf90932a05 Improve infrastructure of numeric handling of elements in symbol tables.
When you want to work with a symbol table, and you don't know whether you
have a numeric ("string that looks like a number") or a string element in
your hands, use zend_symtable_*() functions, in place of zend_hash_*()
functions.
2003-07-22 16:06:07 +00:00
Zeev Suraski
6a50660cfe Fix isset()/empty() for non-trivial object elements
(API change - read_property now accepts an extra element)
Fixes bug #24436
2003-07-22 13:49:33 +00:00
3437e2ef41 ChangeLog update 2003-07-22 00:30:54 +00:00
Zeev Suraski
7e72d8e826 Fix bug #24499 2003-07-21 12:13:16 +00:00
Zeev Suraski
754529920d Revert fix for #24729, and refix 2003-07-21 07:42:15 +00:00
Marcus Boerger
98963e3c75 Go with a better fix for #24729 2003-07-21 07:13:26 +00:00
George Schlossnagle
0229aad042 reverted at Andi's request. replaced with more generic wrapper. 2003-07-21 06:05:58 +00:00
ada5008f9a ChangeLog update 2003-07-21 00:30:29 +00:00
Marcus Boerger
8ac334289a Bugfix #24729 = new ; causes crash when is not set 2003-07-20 20:45:59 +00:00
George Schlossnagle
600f72f7b4 should nt here 2003-07-20 20:16:07 +00:00
Marcus Boerger
cfe2eda4f6 Fix warnings and whitespace in output 2003-07-20 19:57:02 +00:00
Marcus Boerger
23da3057b9 Add support for instances in Reflection_Class.
# Thanks to Timm for the fast patch contained reply to my help request :-)))
2003-07-20 18:58:34 +00:00
George Schlossnagle
7c7de5eb3c removed references to smart_str, replaced with private string management
function.  When snprintf is integrated into the engine, string_printf
should be altered to use that.
2003-07-20 18:45:40 +00:00
Marcus Boerger
c9c1fcc026 More informative errors here and these are real core errors 2003-07-20 17:50:23 +00:00
Marcus Boerger
7bbe6080f2 Fix uncloneable objetcs 2003-07-20 17:46:21 +00:00
George Schlossnagle
84f5e4870e more of Timm's implementation. 2003-07-20 15:42:42 +00:00
Marcus Boerger
184118d9a9 Make it a macro 2003-07-20 12:23:46 +00:00
01d8fea855 ChangeLog update 2003-07-20 00:30:10 +00:00
Marcus Boerger
9556c6c27e This is meant to be used in for(;has_more;next)
# Probably the name of such functions should be eol (End-Of-List).
2003-07-19 20:04:51 +00:00
Marcus Boerger
892c1fbbe7 Add missing function to ease implementations 2003-07-19 14:19:04 +00:00
foobar
aad797691b Fix the HPUX alloca fix as suggested by Sascha 2003-07-19 13:10:24 +00:00
Marcus Boerger
7cdc2d1f39 Shuffle code to ease writing clone handlers 2003-07-19 09:47:00 +00:00
Andi Gutmans
99d0a5c86e - Don't use alloca on HP-UX (Moriyoshi Koizumi <moriyoshi@at.wakwak.com>) 2003-07-19 07:19:21 +00:00
e4625963aa ChangeLog update 2003-07-17 00:30:28 +00:00
Zeev Suraski
e10dbc607c Fix bug in the verification of interface-function implementation 2003-07-16 09:13:47 +00:00
Zeev Suraski
3a898f6d4e More cleanup for assign-op handling of objects 2003-07-16 08:57:08 +00:00
Zeev Suraski
1c385fc742 Fix warning 2003-07-16 08:48:22 +00:00
ed9c700d9b ChangeLog update 2003-07-13 00:30:23 +00:00
Andi Gutmans
af1254e458 - WS 2003-07-12 14:54:53 +00:00
f9551bc554 ChangeLog update 2003-07-12 00:30:21 +00:00
Andi Gutmans
939ab68637 - Add support for Z in zend_parse_parameters(). It will allow the extension
- to retreive the zval **, thus allowing it to use the convert_to_*_ex()
- family of functions to do type conversions without effecting the value in
- the engine itself. (Josh Fuhs <fuhs@purdue.edu>)
2003-07-11 10:21:39 +00:00
b868cb62b2 ChangeLog update 2003-07-09 00:30:34 +00:00
Zeev Suraski
d9fb6b672a initial refactoring for assign-op handling of objects 2003-07-08 11:52:21 +00:00
0bef1de448 ChangeLog update 2003-07-08 00:30:24 +00:00
Zeev Suraski
134338522f Rework zend_do_declare_property and related code into one code base 2003-07-07 16:22:56 +00:00
Zeev Suraski
376c7a1771 Fix bug 2003-07-07 16:04:42 +00:00
Zeev Suraski
3cfa6a68f4 Add get_dim callback 2003-07-07 10:53:27 +00:00
Zeev Suraski
ed97b9fb6e Fix naming convention 2003-07-07 10:47:25 +00:00
Derick Rethans
d16f0a6333 - Help Zeev fixing ghosts :) 2003-07-07 10:16:05 +00:00
Zeev Suraski
ae6a1e7e4e whitespace 2003-07-07 09:12:15 +00:00
Zeev Suraski
65f8bafb29 Fix & whitespace 2003-07-07 09:08:33 +00:00
Zeev Suraski
765f349ecd fixlet 2003-07-07 09:01:22 +00:00
Zeev Suraski
938c0fbc19 Initial support for overloading of array syntax for objects (very initial) 2003-07-07 09:00:36 +00:00
54271f5187 ChangeLog update 2003-07-07 00:30:19 +00:00
George Schlossnagle
daf3ac65ea add convenience functions or adding class properties. Ok'd for commit by Andi. 2003-07-06 19:55:20 +00:00
772f666998 ChangeLog update 2003-07-05 00:30:12 +00:00
Andi Gutmans
84f4588726 - Add heap to memory manager. This should improve performance.
- Enabling it by default so that it gets tested. We should decide before
beta 2 if we want to revert back to malloc or not.
- Thanks to Sebastian for benchmarking it
2003-07-04 15:38:12 +00:00
Sebastian Bergmann
c86b4d13e6 2 * TSRMLS_FETCH() -> 1 * TSRMLS_DC 2003-07-04 10:31:41 +00:00
George Schlossnagle
96b71d7f87 ws fix 2003-07-04 03:26:37 +00:00
99b41db6c1 ChangeLog update 2003-07-04 00:30:27 +00:00
Marcus Boerger
d7e14ad8a3 Allow final private methods
#
# Declaring a method private and final would only be an error for an abstract
# class. But at the moment the method is defined and it's modifiers are checked
# we do not know whether or not we have an abstract class. It could already be
# abstract but it also become abstract later.
#
# Since i made the mistake in first place i remove the check now.
#
# Providing the correct test would slow down the compiler becuase we'd have to
# iterate through all methods on all abstract classes and check for this. I
# guess we can live without. Or does anybody wants this to be implemented ?
2003-07-03 16:45:37 +00:00
George Schlossnagle
edf78b2141 win build fixes (Rob Richards) 2003-07-03 14:11:31 +00:00
George Schlossnagle
6a4c48be6f can't forget Andrei 2003-07-03 14:00:17 +00:00
Stanislav Malyshev
8f0234160a enable Classname() constructor to be called via parent::__constructor() 2003-07-03 12:03:11 +00:00
Stanislav Malyshev
3f0d60f749 add test for Bug #19859 2003-07-03 09:22:35 +00:00
Stanislav Malyshev
5a7b07701b Fix bug #19859 - allow fast_call_user_function to support __call 2003-07-03 09:18:41 +00:00
Stanislav Malyshev
2f96c161df fix the get_parent_class fix 2003-07-03 08:00:10 +00:00
George Schlossnagle
3d7283b94f more of Timm's patches, and mod authors line to give credit where credit is due. 2003-07-03 05:33:23 +00:00
30b5cbd151 ChangeLog update 2003-07-03 00:30:19 +00:00
Marcus Boerger
5b54322dc7 Temporairy solution to overcome shutdown propbelms with objects that have
hidden destructors.
#
# If we set the error level to E_ERROR what we must to to be correct and an
# object needs to be automatically destructed in shutdown process then the
# exit would cause memory corruption and a SEGV.
2003-07-02 23:58:47 +00:00
Marcus Boerger
669016c724 Reorganize this a bit to ensure the object memory is destructed before
showing the error.
2003-07-02 23:53:53 +00:00
Marcus Boerger
d007a6ce5e Bug #24399: is_subclass_of(): fix memleak, too 2003-07-02 21:57:57 +00:00
Zeev Suraski
eb224d4a5f Throughly fix scoping change. Fixes, among other things, bug #24403 2003-07-02 17:48:18 +00:00
Andi Gutmans
02c7aacf83 - Nuke CG(in_clone_method) 2003-07-02 16:52:07 +00:00
Zeev Suraski
d245c52e0c Fix for bug #22367.
Heads up - this will break syntactical compatiblity, return($foo) will
not work with functions that return references - return $foo should be used
instead.  It never worked well before, and caused all sorts of odd bugs.
It *might* be possible to support this specifically, albeit unlikely
2003-07-02 15:06:10 +00:00
Sterling Hughes
92e9e0ca7e optimize the case where the object is really a class name, as we don't need
to set EX(object) here.
2003-07-02 14:44:41 +00:00
Sterling Hughes
3fc83023b6 Timm Friebe points out that object detection should be done regardless of
the function pointer
2003-07-02 14:33:41 +00:00
Marcus Boerger
74a0f6c8ab Finally fix property cloning and fix the tests accordingly.
# The default behaviour is to copy all properties with all current values
# from the old object. But if __clone is overwritten then only the default
# properties are cloned with their correct default values. So we keep
# the type system intact and also allow real __clone overwriting now.
2003-07-02 07:24:11 +00:00
Sterling Hughes
c491b0a672 Fix bug #24445 2003-07-02 04:31:33 +00:00
ed96d7bff0 ChangeLog update 2003-07-02 00:30:25 +00:00
Marcus Boerger
5500287432 Fix __clone().
# This is somewhat discussable. I copied all properties from the old to the
# new object. But for type correctness we only need to copy the properties
# declared in the class and its parents.
#
# Also someone might want to take care about static and const members.
2003-07-01 23:29:36 +00:00
Marcus Boerger
e0a68b1ee0 Use both destructor and shutdown 2003-07-01 23:06:40 +00:00
Marcus Boerger
bef4696d3e small bugfix 2003-07-01 22:47:41 +00:00
Marcus Boerger
2c72deee2c Rename test to correct extension 2003-07-01 21:59:46 +00:00
Marcus Boerger
40dd3f4f88 __clone might not be defined 2003-07-01 21:30:21 +00:00
Marcus Boerger
a04cba504f Fix __clone visibility 2003-07-01 20:02:27 +00:00
Marcus Boerger
35c40932e8 Fix destructor visibility 2003-07-01 19:13:50 +00:00
Derick Rethans
d2b1b6c700 - Added test for bug #24436 2003-07-01 19:12:56 +00:00
George Schlossnagle
c36a59cfd9 Timm Friebe's patches for code celanup and additional functions. 2003-07-01 18:41:42 +00:00
foobar
82194d2766 Missing .cvsignore, broken test, renamed zend2.php -> zend2.php.txt 2003-07-01 15:56:07 +00:00
Sebastian Bergmann
fff7ef2f6c ZTS fixes. 2003-07-01 04:25:29 +00:00
George Schlossnagle
4edd9505fe more incremental changes. add anything that needs a class factory. 2003-07-01 04:10:57 +00:00
George Schlossnagle
9c26571b37 all the easy parts of Reflection_Class 2003-07-01 02:31:21 +00:00
d699324624 ChangeLog update 2003-07-01 00:30:09 +00:00
Shane Caraveo
5efc65f910 this fixes including this header in a c++ file (vs6) 2003-06-30 20:33:02 +00:00
Sterling Hughes
778d8c8bf1 nuke "main" as a reserved keyword 2003-06-30 20:24:26 +00:00
Andi Gutmans
288dacca0c - ZE coding style requires if ( instead of if( 2003-06-30 20:22:35 +00:00
Sebastian Bergmann
5ee72bb478 ZTS fixes. Remove unused local variables. 2003-06-30 20:17:01 +00:00
George Schlossnagle
aa96d17022 added support for Reflection_Function, the first part of
the reflection api
2003-06-30 20:03:56 +00:00
Sterling Hughes
1d70191ab1 move the check down a little so it catches all cases 2003-06-30 19:52:47 +00:00
Sterling Hughes
d0bd54ce6a Fix bug #24399 from an excellent test case by edin 2003-06-30 19:11:01 +00:00
Zeev Suraski
53acb1814e Semantically it's a refcount increase, not a lock... 2003-06-30 13:51:48 +00:00
Zeev Suraski
6f9d0da2e5 Fix 'global' implementation (fixes, at least, bug #24396 2003-06-30 13:47:12 +00:00
Sterling Hughes
dae3fefd10 revert back the optimization for now. 2003-06-30 01:41:15 +00:00
68749958ab ChangeLog update 2003-06-30 00:30:21 +00:00
Ilia Alshanetsky
9754535255 Fixed bug #24279 (__get() crash when no value is returned) 2003-06-29 23:41:49 +00:00
Sebastian Bergmann
4aa81c9d72 Remove namespace references. 2003-06-29 09:40:23 +00:00