1
0
mirror of https://github.com/php/php-src.git synced 2026-04-24 08:28:26 +02:00
Commit Graph

101 Commits

Author SHA1 Message Date
Andrei Zmievski 0667864631 Callable checks and class fetching and lookup should support identifer
normalization now. (Marcus, Andrei)
2006-07-18 17:52:45 +00:00
Dmitry Stogov 4e662470f7 Keeping consistent arg_stack during arguments freeing (Exception from destructor may use inconsistent arg_stack for backtrace). 2006-05-31 13:02:15 +00:00
Dmitry Stogov 7c0e534157 Dropped zend.ze1_compatibility_mode 2006-03-16 10:33:23 +00:00
Andrei Zmievski ba0b3868ee Clean up after Marcus. 2006-03-03 23:23:17 +00:00
Marcus Boerger 03be54de37 - Make unicode handling portable (noted by andrei)
# Actually we should provide much more such unicode strings that we often
# use like 'parent', 'self' and so on.
2006-03-03 23:20:29 +00:00
Dmitry Stogov e3b7f3fd0d Unicode support: MS Visual C compatibility 2006-02-26 11:57:14 +00:00
Dmitry Stogov 0f1209ab3d Portable unicode string API:
- use the same type (int) for zval.value.usr.len and zval.value.str.len
  - use union "zstr" as char*/UChar* mixture instead of void*
  - Z_UNISTR() and Z_UNILEN() no longer check for Z_TYPE()
  - nuke int32_t from ZE (not finisned)
2006-02-21 20:12:43 +00:00
Dmitry Stogov 2e5d0a3a9d WS 2006-02-21 08:00:39 +00:00
Dmitry Stogov b424a32610 Preparation for portable string API (use macroses to access zval). 2006-02-20 19:03:43 +00:00
Dmitry Stogov 227295a4f1 Unicode stuff is changed according to decision maden on PDM.
Now IS_BINRAY data type is removed and IS_STRING starts behave as IS_BINARY in unicode mode. IS_STRING is incompatible with IS_UNICODE, so ALL functions should be improved to support unicode mode.
2006-01-17 12:18:53 +00:00
Andi Gutmans 5de7cc3194 - Update copyright notices to 2006 2006-01-04 23:54:12 +00:00
Marcus Boerger 7c083fcc07 - Have __toString() be called if available in all places an object is used
as a string.
#
# Note that "Object #<id>" is no longer afallback for debugging purpose use
# var_dump, which was made for debugging. If you used this to grab the id
# of an object you can never rely on this. For object storage look at SPL's
# ObjectStorage class.
#
# Note the signature change in the cast handler:
#
# int (*cast_t)(zval *readobj, zval *writeobj, int type, int should_free TSRMLS_DC);
# int (*cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC);
2005-10-05 19:02:27 +00:00
Marcus Boerger 6d703c5967 - In a conditional statement "a ? b ? c", a and b MUST have the same type
# We should make this an inline function to prevent unnecessary calls to
# get classentry or requir that class_entry must return a valid class_entry
# which we do iirc anyway.
2005-10-03 19:24:09 +00:00
Dmitry Stogov b3ec0a78c9 MFH (removed unnecesary call to zval_ptr_dtor) 2005-09-19 17:50:11 +00:00
Dmitry Stogov 0a54602089 Fixed bug #34199 (if($obj)/if(!$obj) inconsistency) 2005-09-12 11:48:28 +00:00
Dmitry Stogov 24743055a3 Changed is_a() and is_subcalls_of() functions to not call __autoload() (in the same way as "instanceof" operator). 2005-08-23 07:23:30 +00:00
Andrei Zmievski b80cb7bd2f Unicode support 2005-08-11 23:35:03 +00:00
foobar 916815b779 Bump up the year 2005-08-03 13:30:58 +00:00
Dmitry Stogov 61b9dedd90 Export zend_do_fcall() helper from executor 2005-06-24 12:33:53 +00:00
Stanislav Malyshev 999998ecaa rename to zend_ 2005-06-16 14:27:08 +00:00
Stanislav Malyshev 87c9e68c91 export zval getters 2005-06-16 11:50:08 +00:00
Dmitry Stogov 3c1a774ddc USER_OPCODE API is improvet.
Implemented ability to dispatch from user handler to internal handler of another opcode.
2005-06-16 06:00:48 +00:00
Dmitry Stogov 84b96e9b03 Fix so that extensions like xdebug, can overload opcodes in all execution modes including goto/switch 2005-06-10 09:54:38 +00:00
Andi Gutmans 8838c0f860 - Two new API calls for Derick (retreive CV name and value) by Dmitry 2005-01-22 02:29:18 +00:00
Andi Gutmans f82ed13625 - Commit new VM architecture. This one allows people (aka Derick) to
- ask the engine to use function handler mode. Will update the README
- about that.
2004-09-23 21:43:32 +00:00
Andi Gutmans d9252aa1ea - Fix for bug #29707 2004-09-21 22:09:22 +00:00
Andi Gutmans 96ab56e146 - Roll back VM commit 2004-09-09 16:47:22 +00:00
Andi Gutmans 8eb8850c90 - Some architectural changes:
a) We specialize opcodes according to op_type fields. Each opcode has to
    be marked with which op_type's it uses.
 b) We support different execution methods. Function handlers, switch()
    and goto dispatching. goto seems to be the fastest but it really
    depends on the compiler and how well it optimizes. I suggest playing
    around with optimization flags.

- Warning: Things might break so keep us posted on how things are going.
  (Dmitry, Andi)
2004-09-08 22:14:12 +00:00
Marcus Boerger 0cd2da0309 - Execute destructors earlier (Florian Schaper, fschaper at intux org) 2004-07-25 07:14:49 +00:00
Marcus Boerger 09e76476ef Improve error message 2004-03-16 10:14:57 +00:00
Stanislav Malyshev 97e7ce733a fix the fix 2004-03-04 13:11:03 +00:00
Stanislav Malyshev 99edaa3a4f oops, fix cut&paste gone bad 2004-03-04 13:09:03 +00:00
Stanislav Malyshev f9c65203d2 Fix object true value: if we are in compat mode and it's Zend object -
use PHP4 rules. Otherwise, object is always true.
2004-03-04 13:06:02 +00:00
Zeev Suraski 00ed3bad29 Centralize exceptions code in zend_exceptions.[ch].
Remove zend_default_classes.h (use zend_exceptions.h instead)

NOTE:  This currently breaks the build, fixes to php-src and pecl coming
       soon
2004-02-12 10:38:14 +00:00
Zeev Suraski d9630a595b Exceptions updates:
- Enforce exceptions to be derived from class Exception.  This allows
  users to perform catch-all.  It's not yet complete, so don't get
  comfortable with it just yet :)  Updates are coming soon.
- Implement zend_throw_exception() using zend_throw_exception_ex()
2004-02-12 10:24:40 +00:00
Andi Gutmans 559b14611d - Add API function to throw exception by using an object 2004-02-12 09:50:08 +00:00
Zeev Suraski c5d842279c Reinstate early-binding for classes.
Note that this is available for downwards compatibility only - and it doesn't
work if you use new features (namely, interfaces).  Generally, people should
declare their classes before using them, but we just didn't want hell to break
loose (c)
2004-02-04 16:30:15 +00:00
Zeev Suraski 9e60cb553f Rewrote exception support. Fixes a few limitations and bugs in the old
implementation, and allows exceptions to 'fire' much earlier than before.

Instructions on how to use the new mechanism will follow on internals@
shortly...

Note - this (most probably) breaks the current implementation of
set_exception_handler()
2004-02-03 12:17:09 +00:00
Andi Gutmans 21f09643ec - Hopefully fix bug #26696.
- Please let me know if hell-breaks loose
2004-01-19 12:22:02 +00:00
Marcus Boerger 3df0288490 Improove debug capabilities 2004-01-18 23:47:10 +00:00
foobar ccfc46b0aa - Happy new year and PHP 5 for rest of the files too..
# Should the LICENSE and Zend/LICENSE dates be updated too?
2004-01-08 17:33:29 +00:00
Zeev Suraski 3a42babad6 Fix behavior of return-by-reference functions. Remove erroneous warnings,
add E_STRICT warnings in case you return something by reference that you're
not supposed to (anything that's not a variable, or a return-value of a
function that returned by reference).
2003-12-14 16:09:07 +00:00
Zeev Suraski e94e3e1775 Some cleanup 2003-12-14 12:32:02 +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
Zeev Suraski 9d7122fb53 Generalize fetch_class 2003-08-03 08:21:08 +00:00
James Cox f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Sebastian Bergmann 572504845d Leftover. 2003-06-02 15:53:09 +00:00
Stanislav Malyshev f7f5a5ea6b MEGA-patch: namespaces are R.I.P. 2003-06-02 12:13:11 +00:00
Andrei Zmievski 3b47a64269 Add zend_lookup_ns_class() function. 2003-04-08 17:10:01 +00:00
Stanislav Malyshev a4c3b2ce80 Namespace patch. Big changes:
1. Nested classes are gone.
2. New syntax for namespaces:
namespace foo {
	class X { ... }
	function bar { ... }
	var x = 1;
	const ZZ = 2;
}
3. Namespaced symbol access: $x = new foo::X; - etc.
For now, namespaces are case insensitive, just like classes.
Also, there can be no global class and namespace with the same name
(to avoid ambiguities in :: resolution).
2003-02-16 11:12:43 +00:00