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
bef4696d3e
small bugfix
2003-07-01 22:47:41 +00:00
Andi Gutmans
288dacca0c
- ZE coding style requires if ( instead of if(
2003-06-30 20:22:35 +00:00
Stanislav Malyshev
fe1ef91e77
No need to duplicate code - zend_get_constant() knows to
...
handle class constants now
2003-06-15 14:46:15 +00:00
Stanislav Malyshev
95a936becc
Fix bug #18872 - Improper handling of class constants used as default
...
function argument values
2003-06-15 14:42:39 +00:00
Stanislav Malyshev
efafae1427
Fix bug #21800 - initialize opcode handlers in interactive mode
2003-06-15 11:44:30 +00:00
James Cox
f68c7ff249
updating license information in the headers.
2003-06-10 20:04:29 +00:00
Wez Furlong
7959b2d7b0
Fix for Bug #23951
2003-06-09 17:02:32 +00:00
Stanislav Malyshev
565985acfc
Support 'self' and 'parent' in call_user_func()
2003-06-09 10:55:37 +00:00
Stanislav Malyshev
f7f5a5ea6b
MEGA-patch: namespaces are R.I.P.
2003-06-02 12:13:11 +00:00
Marcus Boerger
7af8eadd57
Make zend_str_tolower_copy() a copy function (like stccpy).
...
Supply a dup version (like estrdup).
Fix tolower() handling.
# Havin copy and dup allows to use the faster version even with
# memory not allocated by emalloc.
2003-05-21 21:59:40 +00:00
Sterling Hughes
ca6ca5e2a6
optimize the lookups by avoiding a copy and then another pass
...
Naked Dancing Girls should be given to: Myself, Zeev, Marcus,
and George Schlossnagle (in no particular order)
2003-05-20 18:28:14 +00:00
Sterling Hughes
909eafc2b0
add fast_call_user_function()
2003-05-20 16:44:42 +00:00
Marcus Boerger
fe47a383e3
One function call is enough
2003-05-12 18:54:05 +00:00
Stanislav Malyshev
52ac291c54
Check name before '::' so that it would be a namespace in zend_lookup_ns_class
2003-04-20 14:40:38 +00:00
Andrei Zmievski
3b47a64269
Add zend_lookup_ns_class() function.
2003-04-08 17:10:01 +00:00
Sebastian Bergmann
3fc852824f
Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_class_entry().
2003-03-26 07:44:11 +00:00
Zeev Suraski
36eae0b771
Fix destructors some more
2003-03-02 15:24:04 +00:00
Sebastian Bergmann
6d300baf84
ZTS fixes
2003-02-16 11:34:49 +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
Thies C. Arntzen
e62f37c804
init current_execute_data befor we start executing
2003-02-14 12:25:09 +00:00
Zeev Suraski
dbb73d8f1e
Add ability to reference self:: and parent:: in constant initializers
...
(bug #21849 )
2003-02-10 09:45:27 +00:00
foobar
333406bdc2
- Added some missing CVS $Id$ tags, headers and footers.
2003-02-01 01:49:15 +00:00
Ilia Alshanetsky
62db0b4854
Fix ZTS build.
2003-01-30 00:44:56 +00:00
Stanislav Malyshev
03f88ac2b2
Add additional stage to post-session cleanup.
...
We need separate cleanup stage because of the following problem:
Suppose we destroy class X, which destroys function table,
and in function table we have function foo() that has static $bar. Now if
object of class X was assigned to $bar, its destructor will be called and will
fail since X's function table is in mid-destruction.
So we want first of all to clean up all data and then move to tables
destruction.
Note that only run-time accessed data need to be cleaned up, pre-defined
data can not contain objects and thus are not probelmatic.
# Looks like we are having a lots of pain in the various parts of the body
# because of the destructors...
2003-01-29 17:54:48 +00:00
Stanislav Malyshev
f73def91ed
Fix object destructors:
...
zend_objects_store_call_destructors is not used anymore, we rely on
symbol tables cleaners to destroy all objects.
2003-01-29 14:33:18 +00:00
foobar
7a93625e4c
Fixed bug: #14542 , register_shutdown_function() timeout problem
2003-01-23 05:15:42 +00:00
Zeev Suraski
424e98f4e2
Implemented compatibility mode
...
To enable - zend2.implicit_clone = on in php.ini or using ini_set()
2003-01-12 12:39:06 +00:00
Derick Rethans
2c44fab3a0
- Ported the zend_execute_internal hook to ZendEngine2.
2003-01-11 16:12:44 +00:00
Sebastian Bergmann
2c5d4b8c23
Bump year.
2002-12-31 15:59:15 +00:00
Andrei Zmievski
4f8c44b091
Adjust the error message.
2002-12-30 18:30:50 +00:00
Andi Gutmans
671fff2fde
h WHitespace
2002-11-30 11:20:25 +00:00
Zeev Suraski
4be862b02c
MFZE1 - error_reporting fix
2002-11-19 17:51:30 +00:00
Andi Gutmans
c92758c89e
- Fix bug introduced with type change of free_op1/2
2002-11-05 19:06:40 +00:00
Ilia Alshanetsky
e842ef9f4b
MFZE1 (floats & locale issue)
2002-10-12 21:15:35 +00:00
Ilia Alshanetsky
d3617c51b8
MFZE1 zend_str_tolower issue.
2002-10-09 14:21:40 +00:00
Ilia Alshanetsky
ee7b8f906d
MFZE1
2002-09-26 18:56:11 +00:00
Zeev Suraski
bd115087e3
MFZE1 - connection_status() fix
2002-09-19 15:58:01 +00:00
Andrei Zmievski
a35c61af3c
MFZE1
2002-09-16 01:36:48 +00:00
Andi Gutmans
43139dc755
- WS - Always use "if (" and not "if("
2002-09-15 07:45:26 +00:00
Andi Gutmans
fcc0ce7eec
- WS
2002-09-15 07:41:23 +00:00
Stanislav Malyshev
7fe216e27b
MFZE1
2002-09-10 08:37:18 +00:00
Stanislav Malyshev
ca6717e348
MFZE1
2002-09-10 08:35:50 +00:00
Thies C. Arntzen
eef3e66f1f
debug_backtrace()
...
- make args passed to functions called vy call_user_function available again.
2002-08-28 15:05:15 +00:00
Thies C. Arntzen
7ed2d363c8
- debug_backtrace:
...
added "type" ('->' or '::') for object calls.
made calls done thru call_user_func show-up correct in backtraces.
andi,
does this look correct to you?
2002-08-23 13:50:42 +00:00
Stig Bakken
04788f9503
@- Added set_exception_handler() function for registering a global,
...
@ catch-all exception handling function (Stig)
- Added set_exception_handler() function for registering a global,
catch-all exception handling function (Stig)
2002-08-16 00:41:37 +00:00
Andi Gutmans
17d1c75b8b
- Fix crash when exception is raised in __autoload function
2002-08-13 16:46:40 +00:00
Andi Gutmans
b476ddf183
- Make sure classes are first looked for in the current scope.
...
- Make sure that during inheritance the global scope is searched if the
- current one doesn't work.
2002-07-27 15:53:14 +00:00
Andi Gutmans
401c26fb5e
- Invalid -> Undefined
2002-06-29 16:01:40 +00:00
Andi Gutmans
ede84fa384
- Improve some error messages.
2002-06-29 15:30:27 +00:00
Andi Gutmans
737de1bd0c
- Autoloading support based on patch from Ivan Ristic.
...
- Again I hope this feature ends up working well because if it doesn't we
- might need to nuke it. This only works for global scoped classes and it
- will never work for sub-classes so don't even ask!!!!!
- Just define an __autoload() function in the global scope and it will be
- called with the class name as the parameter if it doesn't manage to find
- the class.
2002-06-26 15:13:14 +00:00
Andi Gutmans
690c85b406
- Fix bug in class constants
...
- Start centralizing main class lookups. This will help implement
- __autload()
2002-06-16 18:25:05 +00:00
Stanislav Malyshev
f75f3cff82
Generalize object storage and reference bookkeeping
2002-05-31 12:09:19 +00:00
Andi Gutmans
7e5ec2d761
Initial support for built-in backtracing.
...
There are still a few problems such as includes and calling other functions
from internal functions which aren't seen (will have to think if and how to
fix this).
Also the main scripts filename isn't available. Need to think about that.
2002-05-02 17:20:48 +00:00
Harald Radi
51e797f1e3
some type cleanup work
2002-04-23 18:06:54 +00:00
Zeev Suraski
579b9bff3d
MFZE1
2002-04-20 20:14:14 +00:00
Stanislav Malyshev
3af5b15f30
Fix call_user_function
2002-03-14 12:18:01 +00:00
Stanislav Malyshev
92dd5e611b
- make class tables contain class_entry *, not class_entry
...
- fix isset($this)
2002-03-12 10:08:47 +00:00
Andi Gutmans
90bd4539c7
- Remove use of C++ reserved words namespace/this
2002-03-01 14:27:26 +00:00
Stanislav Malyshev
6608f07322
Mega-commit: Enter the new object model
...
Note: only standard Zend objects are working now. This is definitely going to
break custom objects like COM, Java, etc. - this will be fixed later.
Also, this may break other things that access objects' internals directly.
2002-02-07 14:08:43 +00:00
Andi Gutmans
7309a6ed21
- First destructor hell fix. There was a situation where an object's
...
- destructor could be run after its class was already dead. Right now
- object destructors is the first thing whic happens during shutdown in
- order to prevent this problem. It's very likely that destructors will
- cause more grief and we'll have to outline exactly when you should use
- them and what kind of logic you're allowed to do inside of them.
- This bug was reported by sebastian.
2002-01-25 12:55:03 +00:00
Andi Gutmans
2131b019c7
- Improve performance of functions that use $GLOBALS[]
...
- Please check this and make sure it doesn't break anything.
2002-01-20 20:42:15 +00:00
Andi Gutmans
65f01545a8
- Fix crash bug in call_user_function_ex(). Thanks to Sebastian for the
...
- very nice and short reproducing script.
<?php
$array = array('foo', 'bar');
uasort($array, 'cmp');
function cmp($a, $b)
{
return (strcmp($a[1], $b[1]));
}
?>
2002-01-14 16:55:23 +00:00
Sebastian Bergmann
62dc854bb0
Happy New Year.
2002-01-06 15:21:36 +00:00
Andi Gutmans
a4248dd584
- Significantly improve the performance of method calls and $this->member
...
- lookups.
2002-01-05 15:18:30 +00:00
Andi Gutmans
5cb454a8ad
- Fix scoping issue. The following works now:
...
<?
class MyClass {
static $id = 0;
function MyClass()
{
$this->id = self::$id++;
}
function _clone()
{
$this->name = $clone->name;
$this->address = "New York";
$this->id = self::$id++;
}
}
$obj = new MyClass();
$obj->name = "Hello";
$obj->address = "Tel-Aviv";
print $obj->id;
print "\n";
$obj = $obj->_clone();
print $obj->id;
print "\n";
print $obj->name;
print "\n";
print $obj->address;
print "\n";
2001-12-26 20:17:34 +00:00
Andi Gutmans
9e7c0d67d0
- Add initial capability of defining nested classes as class foo::bar
2001-12-22 15:31:44 +00:00
Andi Gutmans
f4b832d277
- Fix crash bug in startup code.
...
- Start work on being able to reference global and local scope
2001-12-13 16:55:04 +00:00
Andi Gutmans
4cb97fa3b9
- Rename zend_class_entry.constants -> zend_class_entry.constants_table
2001-12-11 18:46:43 +00:00
Sebastian Bergmann
d863d52a5d
Update headers.
2001-12-11 15:16:21 +00:00
Andi Gutmans
42486196ad
- Initial work on changing namespace scope. Only methods & variables
...
- right now.
<?
$hey = "Global hey\n";
class foo {
static $hey = "Namespace hey\n";
function bar()
{
print "in foo::bar()\n";
}
}
function bar()
{
print "in bar()\n";
}
bar();
namespace foo;
bar();
namespace;
bar();
namespace foo;
$bar_indirect = "bar";
$bar_indirect();
namespace;
print $hey;
namespace foo;
print $hey;
$hey = "Namespace hey #2\n";
namespace;
print $hey;
$hey = "Global hey #2\n";
namespace foo;
print $hey;
?>
2001-12-06 17:47:04 +00:00
Andi Gutmans
fe94f59427
- Nuke the namespace work I did. It'll be redone differently.
2001-12-06 17:23:08 +00:00
Andi Gutmans
e858d27888
- Initial support for class constants. There are still a few semantic
...
- issues which need to be looked into but basically it seems to work.
- Example:
<?php
class foo
{
const hey = "hello";
}
print foo::hey;
?>
2001-11-30 16:29:47 +00:00
Andi Gutmans
89a0e85251
- Fix Zeev's MFZE1
2001-10-26 14:13:42 +00:00
Zeev Suraski
aecd5b89ee
MFZE1
2001-10-23 01:23:36 +00:00
Andi Gutmans
2eabb14dc7
- Merge the NAMESPACES_BRANCH. It wasn't a good idea to have a branch when
...
- the whole CVS tree is work in progress
2001-09-30 17:29:55 +00:00
Zeev Suraski
b06440bceb
MFZE1 (support return value in execute_scripts)
2001-09-10 00:07:32 +00:00
Andi Gutmans
29f5dbe10b
- Initial support for exceptions.
2001-08-30 15:26:30 +00:00
Zeev Suraski
4757104e45
MFZE1
2001-08-21 12:29:12 +00:00
Zeev Suraski
4f6c95d17a
Whitespace
2001-08-11 15:56:40 +00:00
Andi Gutmans
5af7770a81
- Sync Engine2 CVS with latest Engine CVS
2001-08-07 03:17:33 +00:00
Zeev Suraski
c14baeece3
Avoid going over huge lists of functions, classes and constants.
...
Special thanks to the guys from the MS lab for the profiling tools :)
2001-08-02 07:00:43 +00:00
Zeev Suraski
7deb44e36d
Some cleanup
2001-08-02 06:16:20 +00:00
Zeev Suraski
d76cf1da18
More TSRMLS_FETCH work
2001-07-31 04:53:54 +00:00
Zeev Suraski
4187439cff
More TSRMLS_FETCH work
2001-07-30 07:43:02 +00:00
Zeev Suraski
8ce8324e59
More TSRMLS_FETCH annihilation
2001-07-30 04:54:16 +00:00
Zeev Suraski
b57703825b
Avoid TSRMLS_FETCH()'s (still lots of work left)
2001-07-30 01:48:22 +00:00
Zeev Suraski
b4f3b9d3ce
Redesigned thread safety mechanism - nua nua
2001-07-28 10:51:54 +00:00
Zeev Suraski
2c254ba762
Get rid of ELS_*(), and use TSRMLS_*() instead.
...
This patch is *bound* to break some files, as I must have had typos somewhere.
If you use any uncommon extension, please try to build it...
2001-07-27 10:10:39 +00:00
Zeev Suraski
931ebe08d7
Improve bailout mechanism, supports nesting of bailouts a-la try..catch
2001-07-21 14:25:27 +00:00
Zeev Suraski
8084d27885
Implement a more granular shutdown mechanism for the executor -
...
prevent corruption of constants and missing destructions of resources
2001-07-20 14:20:34 +00:00
Zeev Suraski
fb532ba52b
Fix bug #10467
2001-07-16 11:41:06 +00:00
Zeev Suraski
9bd9862451
Fix bug #10257
2001-07-15 17:48:50 +00:00
Zeev Suraski
85b4df53c0
Improved interactive mode - it is now available in all builds, without any significant slowdown
2001-07-15 14:08:58 +00:00
Andi Gutmans
8cd70926c5
- Nuke dependency of all of PHP on zend_execute_locks.h.
2001-06-21 21:17:10 +00:00
Zeev Suraski
6cf6835a4d
Add missing check
2001-05-30 08:23:15 +00:00
Zeev Suraski
686eab894c
Hear hear, interactive mode is finally showing some progress:
...
- Support function calls
- Fix crash bug
2001-05-06 15:00:58 +00:00
Andi Gutmans
ce7d0ef090
- Fix crash bug in interactive mode
2001-04-30 04:50:34 +00:00
Andi Gutmans
0971ff99cb
- Whitespace changes to be standard like the rest of Zend
2001-04-27 18:51:56 +00:00
Andrei Zmievski
145a319f43
Do case-insensitive class name matching when parsing
...
array('Class', 'method') structure.
You guys can clean it up, if there is a better way.
2001-02-28 03:53:00 +00:00
Andi Gutmans
d2c9e8074c
- Update copyright year
2001-02-26 05:43:27 +00:00
Andi Gutmans
488d808748
- Fix whitespace.
2001-02-12 15:18:05 +00:00
Zeev Suraski
d854b26e43
Fix a bug that could cause corruption in case of an error during
...
get_zval_ptr()
2001-02-12 15:16:11 +00:00
Andrei Zmievski
98d8ba8cc4
Allow passing class name as well as an object instance to call methods.
2001-02-04 00:06:08 +00:00
Andrei Zmievski
088a4b7151
Set the correct function state during execution. This is mainly to have
...
get_active_function_name() to return proper value.
2001-02-03 07:21:35 +00:00
Zeev Suraski
cec94760fd
More aggressive protection in call_user_function_ex()
2000-12-24 00:29:14 +00:00
Zeev Suraski
f052eab681
Fix a possible crash bug in call_user_function_ex(), if the function is
...
in fact not a user function
2000-12-23 12:54:42 +00:00
Zeev Suraski
be895bcb96
Fix call_user_function() with objects - it could leak under certain circumstances
2000-12-13 22:50:10 +00:00
Zeev Suraski
dee2d85e77
Fix -a interactive mode (no idea how the previous commit got committed)
2000-10-11 18:51:52 +00:00
Zeev Suraski
5286b3971c
Make compile_string() accept a description of the code
2000-09-12 19:47:25 +00:00
Andi Gutmans
207814916d
- Fix bug report by Andrei when using a method as a sort user function
...
- parameter in usort() like functions
2000-08-22 18:35:42 +00:00
Zeev Suraski
c06692e9ec
The patch we promised - redesigned the compilation/execution API:
...
Advantages:
- Smaller memory footprint for the op arrays
- Slightly faster compilation times (due to saved erealloc() calls and faster zend_op
initialization)
- include_once() & require_once() share the same file list
- Consistency between include() and require() - this mostly means that return()
works inside require()'d files just as it does in include() files (it used to
be meaningless in require()'d files, most of the time (see below))
- Made require() consistent with itself. Before, if the argument was not a constant
string, require() took the include() behavior (with return()).
- Removed lots of duplicate code.
Bottom line - require() and include() are very similar now; require() is simply an include()
which isn't allowed to fail. Due to the erealloc() calls for large op arrays, require()
didn't end up being any faster than include() in the Zend engine.
2000-08-09 19:22:35 +00:00
Stanislav Malyshev
91130b6a00
Unblock SIGPROF signal when starting timer.
...
On Linux, this signal is blocked by default after first signal is run
2000-07-03 16:53:39 +00:00
Andi Gutmans
b72a2738dc
- Forgot ZEND_API
2000-07-02 15:39:54 +00:00
Zeev Suraski
fde2e61d54
error_reporting fix
2000-06-30 11:45:32 +00:00
Zeev Suraski
202b8100ab
Make max_execution_time work properly when set to 0 under Win32 (disable)
2000-06-26 15:17:36 +00:00
Zeev Suraski
34c2b0a07c
- Add restore_error_handler()
...
error_handler's are now stored in a stack
2000-06-17 18:04:58 +00:00
Zeev Suraski
3cda6a750e
Allow the symbol_table to be passed to call_user_function_ex()
2000-06-17 16:50:38 +00:00
Zeev Suraski
84eb48f0a1
Ok, this time here's some real Win32 system programming :)
...
Redesigned the timeout system using a single timeout thread and a single window,
and used a much quicker check.
2000-06-16 14:27:28 +00:00
Andi Gutmans
ae11748038
Fix UNIX build
2000-06-16 02:49:21 +00:00
Zeev Suraski
ef0bd3d102
- Move timeout code to Zend
...
- Implement timeouts in Win32
2000-06-16 01:54:56 +00:00
Sascha Schumann
df74f1dfab
Add optional support for C0x inline semantics.
...
These are enabled by specifying `--enable-c0x-inline' on the command
line. We might add an autoconf check for this particular feature
later.
2000-06-13 17:58:33 +00:00
Sascha Schumann
039551788b
Add a couple of casts
2000-06-08 06:07:38 +00:00
Zeev Suraski
1c36e3472f
Change shutdown order to sort out a crash when assigning a resource id to a static.
2000-06-04 22:09:16 +00:00
Zeev Suraski
5a35a6bafc
Improve call_user_function() to support array($obj, $method)
2000-06-03 03:28:08 +00:00
Zeev Suraski
13b67621cf
Fix a bug in static initializers/default values/class member variables that contained
...
array values
2000-05-31 19:07:09 +00:00
Andi Gutmans
dc704e26fe
- Make zend_eval_string() return SUCCESS/FAILURE
2000-05-06 18:49:46 +00:00
Zeev Suraski
fa7c418b79
Fix - forgot to split away if refcount>1
2000-04-26 22:10:06 +00:00
Zeev Suraski
67f6974373
Initial support for trapping errors (not complete and disabled; will be enabled only
...
post-PHP 4.0.0)
2000-04-19 15:08:06 +00:00
Zeev Suraski
4cb9a483d2
- Clean up resource lists namespace
...
- Prepare extended resource list destructor APIs (currently unused)
2000-04-15 13:02:22 +00:00
Andi Gutmans
804861c5ac
- Fix memory leak
2000-04-11 18:16:58 +00:00
Zeev Suraski
e663d856b3
Fix object overloading support
2000-04-10 20:21:13 +00:00
Andi Gutmans
7fd92b524d
- Stop zend_func_args() and co. from crashing
2000-03-26 18:40:24 +00:00
Zeev Suraski
5dba477467
- Some header dependencies cleanup
...
- Generalize zval_print() and zval_print_r()
2000-03-25 19:10:07 +00:00
Andi Gutmans
6db18997bb
- Nuke hash_*_ptr functions
2000-03-24 11:12:30 +00:00
Andi Gutmans
5951b166c8
- Quick way of supporting include_once().
...
Good enough for RC1.
2000-03-10 16:36:30 +00:00
Zeev Suraski
5e55e47f7f
It's official now...
2000-03-06 05:26:39 +00:00
Zeev Suraski
0ac9536d99
(c) patch
2000-02-19 22:46:42 +00:00
Zeev Suraski
f207b3623e
Pass the executor globals to internal functions
2000-02-05 15:40:05 +00:00
Zeev Suraski
9f51f154aa
- Stop passing list/plist to internal functions
...
- Add a typedef for the pCopyConstructor function pointer
- Minor hacks
2000-02-05 15:11:24 +00:00
Zeev Suraski
b6197bcf90
Maintain a state of whether we're compiling and/or executing
2000-02-04 14:45:58 +00:00
Zeev Suraski
485412ecb1
Improve dependencies
2000-02-01 22:04:52 +00:00
Andi Gutmans
131e3a06fb
- Get rid of remains of garbage.
...
- This should fix Thies' UMR
2000-02-01 16:02:38 +00:00
Thies C. Arntzen
11f53347c7
moved destroying of garbage before resource-list gets destroyed - (see my previous mail)
...
zeev, andi - please comment!
2000-02-01 11:41:15 +00:00
Zeev Suraski
f2d3ce4170
- Optimized garbage mechanism
...
- Fixed another buglet in the parser
2000-01-31 19:18:07 +00:00
Andi Gutmans
8b9765a917
- Keep objects as references.
2000-01-26 21:10:46 +00:00
Andi Gutmans
4585f7bf1f
- Allow is_ref to become 0 in case the refcount is back to 1.
2000-01-26 05:03:22 +00:00
Zeev Suraski
fafbf6d8da
- Implement declare() with declarables framework
...
- Implement ticks - Germany&Norway - 5 points!
2000-01-24 19:00:30 +00:00
Zeev Suraski
adec56938e
Fixes
2000-01-24 17:29:15 +00:00
Zeev Suraski
e6ba28b680
Fix an elusive bug
2000-01-22 17:02:48 +00:00
Zeev Suraski
62114c1806
Destructors no longer return ints, the low level problem it was intended to solve is long gone now...
2000-01-17 17:33:37 +00:00
Zeev Suraski
ee08b81aab
- Make zend_hash_apply() (and friends) reentrant and much, much quicker
...
- Introduce zend_hash_graceful_destroy(), which allows the destructor functions to
use zend_hash_apply() and/or zend_hash_graceful_destroy()
- Switch to zend_hash_graceful_destroy() in the resource list shutdowns
2000-01-16 20:59:03 +00:00
Zeev Suraski
caaeb9ff12
Fix a bug in call_user_function_ex()
2000-01-15 22:52:24 +00:00
Andi Gutmans
bdefd5da15
- Change IS_UNSET -> IS_NULL
2000-01-04 13:22:58 +00:00
Zeev Suraski
f2d703e916
- Nuke undefined_variable_string
...
- Introduce IS_UNSET
1999-12-31 13:56:59 +00:00
Zeev Suraski
b7a5b3c309
- Generalize the fast cache mechanism
...
- Add the HashTable struct to the fast cache mechanism
1999-12-27 19:07:33 +00:00
Zeev Suraski
235386b245
Change ALLOC_ZVAL() semantics
1999-12-26 21:21:33 +00:00
Andi Gutmans
62b2087a84
- Create two new macro's. ALLOC_ZVAL() and FREE_ZVAL(z) and make Zend use
...
them.
1999-12-24 15:22:11 +00:00
Andrei Zmievski
80bab9d939
We're using ZVAL's now.
1999-12-21 17:14:31 +00:00
Zeev Suraski
223c674c2a
- Made things work again (Thies, everybody - please check the latest CVS and see if you're
...
still getting any problems)
- Changed the interface of call_user_function_ex() to support returning of references
1999-12-19 18:54:40 +00:00
Andi Gutmans
213d0e2fb2
- More fixes related to the return references patch
...
- eval_string() and call_user_function_ex() still don't work.
- The libzend tree is untested and might not be stabl yet.
1999-12-19 06:39:17 +00:00
Zeev Suraski
ced9cee10c
- Implement return by reference:
...
- In function declaration instead of the return statement
- In the assignment phase
- Implement ability to turn off support for call-time pass by reference
1999-12-15 20:15:32 +00:00
Sascha Schumann
70df2d7478
Fix some warnings
1999-12-05 16:23:45 +00:00
Andi Gutmans
5463dd5b38
- Add use support (behaves like require, but will not use the same file twice)
...
- Add import support (behaves like include, but requires parentheses; will not
use the same file twice; Currently, it is not yet properly implemented, and
only behaves like include)
1999-11-30 20:15:04 +00:00
Zeev Suraski
6358c6631b
- Optimize class instanciation
...
- Fix constant instanciation for array elements inside objects
1999-11-21 18:11:10 +00:00
Andi Gutmans
3cd140cdef
- Weird that this compiled for me.
1999-11-16 20:31:29 +00:00
Andi Gutmans
1c0f136405
- Hooray. This might actually work. (I hope)
1999-10-03 20:06:21 +00:00
Andi Gutmans
86357a9c27
- Move is_ref back to being an unsigned char and not a bit field.
1999-10-01 23:31:39 +00:00
Andi Gutmans
4dd47ffbc1
- Remove locking support completely
1999-10-01 23:26:00 +00:00
Andi Gutmans
59d5462a6a
- Stop using the locking mechanism and start using refcount.
...
Now we know when we need to free but we still need to support it
1999-09-28 17:37:14 +00:00
Andi Gutmans
b56fd4602f
- First part of the patch which makes reads use ptr and not ptr_ptr.
1999-09-28 16:03:09 +00:00
Andi Gutmans
4fff0386ac
- Changed Ts{}.var to Ts{}.var.ptr_ptr.
1999-09-26 05:45:18 +00:00
Thies C. Arntzen
20ee106672
no // in the sources please
1999-09-17 12:16:21 +00:00
Zeev Suraski
023cb6474b
Fix a crash bug in case of aborted execution
1999-08-27 21:21:04 +00:00
Zeev Suraski
aa8b27ba1d
Better debug macros
1999-08-27 19:17:19 +00:00
Andi Gutmans
02822cbc33
- Damn. It wasn't a correct fix. This should do it.
...
When the zval ** are equal we don't want to assign_ref, in any other case
I can think of we do want to assign_ref.
1999-08-26 07:33:53 +00:00
Andi Gutmans
2c88f2950c
- Fix leak when global is used in the global scope.
1999-08-26 07:26:15 +00:00
Zeev Suraski
50bfff5502
Fix #2012
1999-08-17 22:31:45 +00:00
Zeev Suraski
720d32f581
Fix a few leaks
1999-08-07 23:04:01 +00:00
Zeev Suraski
0487650536
Fix a bug in call_user_func_ex()
1999-08-06 21:43:49 +00:00
Zeev Suraski
f95edc016b
Introduce call_user_func_ex()
1999-08-06 15:24:10 +00:00
Andi Gutmans
741ca16711
- Fixed various inheritance problems & Andrey's leak
1999-07-28 17:59:55 +00:00
Andi Gutmans
bf8c6dbd99
- Get rid of C++ comments
1999-07-20 13:01:30 +00:00
Zeev Suraski
8d1de13aef
0.91 update
1999-07-19 20:02:12 +00:00
Andi Gutmans
e3daad2d67
- Should fix the memory leak when returning from the main scope.
1999-07-18 17:33:51 +00:00
Zeev Suraski
b5b1117760
License update
1999-07-16 14:58:16 +00:00
Sascha Schumann
138dd94c8d
disable zend_handle_sigsegv
1999-07-15 12:17:34 +00:00
Zeev Suraski
dc933fc50b
Woops, fix.
1999-07-10 12:44:56 +00:00
Zeev Suraski
909590ba7b
Put the garbage in the garbage bin
1999-07-10 11:47:16 +00:00
Zeev Suraski
cccd2445ee
Get rid of AiCount completely
1999-07-10 11:45:23 +00:00
Zeev Suraski
2a6da7814c
Step 4:
...
Move to a 7-bit counter (not fully implemented yet)
1999-07-09 20:43:59 +00:00
Zeev Suraski
6ec1acbe32
Phase 3:
...
Use a single bit to mark IS_REF variables
1999-07-09 18:19:48 +00:00
Zeev Suraski
5f62c347c7
Step 2:
...
Rename is_ref to EA
1999-07-09 17:44:41 +00:00
Zeev Suraski
81d901b14d
Step 1 in nuking the garbage collector:
...
- Change the hash destructor to return int
- Don't kill the bucket on hash_destroy if the destructor returns 0
1999-07-09 17:24:47 +00:00
Zeev Suraski
81f5522210
Fix the mess in SIGSEGV handling, hopefully
1999-07-09 07:35:13 +00:00
Zeev Suraski
da9faa2c3a
* Make the output handling of variables much, much cooler.
...
Uses zend_make_printable_zval() instead of convert_to_string() now:
$foo = true;
print "\$foo is $foo";
will now print
$foo is true
(instead of "$foo is 1", earlier).
Also, with objects, it automatically tries to call __print() and use it as a printing
function.
For example:
class foo {
function __print() { return "Foo Object"; }
};
$foo = new foo;
print $foo;
will print "Foo Object".
1999-06-11 10:44:26 +00:00
Zeev Suraski
b484f40c31
* Fix foreach() that receives a non array argument
...
* Clean up some C++ comments
1999-06-09 21:02:59 +00:00
Zeev Suraski
cf757f7c89
Fix that GLOBALS leak. We were explicitly adding GLOBALS to the main symbol table,
...
but there's no reason to do it (INIT_GLOBALS takes care of it if necessary.)
1999-06-04 12:22:19 +00:00
Andi Gutmans
52ec64359c
Fixes
1999-05-31 18:33:12 +00:00
Sascha Schumann
88029643d0
* fix some casts
...
* introduce unary_op_type - cleaner than casting data voids to function ptrs
1999-05-30 13:28:56 +00:00