Commit Graph

145 Commits

Author SHA1 Message Date
Dmitry Stogov
2ed8a17045 Refactored run_time_cache usage in object handlers 2014-07-07 20:54:31 +04:00
Xinchen Hui
d85e39cf4a Fixed invalid read in ext/pdo/tests/pdo_025.phpt(pgsql) 2014-05-16 19:11:38 +08:00
Dmitry Stogov
5864ce8a44 Fixed compilation warnings 2014-04-22 17:46:34 +04:00
Dmitry Stogov
e96073b1e4 Moved zend_literal->cache_slot right into zval.
It should be accessed using Z_CACHE_SLOT() macro.
zend_literal structure is removed.
API functions that accepted pointer to zend_literal now accept pointer to zval or cache_slot directly.
Calls of such functiond that now accept cache_slot need to be changed to pass -1 instead of NULL.
2014-04-17 15:40:45 +04:00
Dmitry Stogov
050d7e38ad Cleanup (1-st round) 2014-04-15 15:40:40 +04:00
Dmitry Stogov
d8a0c6c6ab typo 2014-04-10 00:22:13 +04:00
Dmitry Stogov
7402af380b Fixed destruction of objects and iterators on unclean request shutdown and GC (few cases are still unfixed).
Now we destroy objects it two steps. At first - object properties of all objects and only then the objects their selves.
2014-04-09 01:50:15 +04:00
Dmitry Stogov
d8099d0468 Changed data layout to allow more efficient operations 2014-04-02 14:34:44 +04:00
Dmitry Stogov
ea85451b65 Refactored data structures to keep zend_object* instead of a whole zval in some places 2014-03-28 02:11:22 +04:00
Dmitry Stogov
5db78476e3 Mark objects that are going to be deleted 2014-03-19 23:50:50 +04:00
Dmitry Stogov
b7938ab1bd Refactored GC (incomplete) 2014-03-19 17:00:28 +04:00
Dmitry Stogov
1c3ba95bb5 Refactored read_property() and read_dimension() handlers 2014-02-27 15:40:13 +04:00
Dmitry Stogov
51d7c4828a Fixed tests/run-test/test009.phpt 2014-02-21 15:48:56 +04:00
Xinchen Hui
cc15eb500e Fixed segfault in Zend/tests/008.phpt 2014-02-20 16:21:41 +08:00
Xinchen Hui
b917458490 Fixed segfault (Zend/tests/026.phpt now pass) 2014-02-20 15:39:46 +08:00
Dmitry Stogov
110e01a21e Fixed object destruction 2014-02-18 22:35:54 +04:00
Dmitry Stogov
be82a07776 Use better data structures (incomplete) 2014-02-12 18:08:11 +04:00
Dmitry Stogov
f4cfaf36e2 Use better data structures (incomplete) 2014-02-10 10:04:30 +04:00
Xinchen Hui
c081ce628f Bump year 2014-01-03 11:08:10 +08:00
Xinchen Hui
7da6498342 Fixed bug #60598 (cli/apache sapi segfault on objects manipulation) 2013-08-30 11:20:24 +08:00
Dmitry Stogov
f9e8678dd3 Fixed bug #63882 (zend_std_compare_objects crash on recursion) 2013-01-09 11:30:50 +04:00
Xinchen Hui
0a7395e009 Happy New Year 2013-01-01 16:28:54 +08:00
Felipe Pena
4e19825281 - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena
0203cc3d44 - Year++ 2011-01-01 02:17:06 +00:00
Dmitry Stogov
e8c87c6d21 - Fixed bug #52773 (Proxy objects have an inadequate destroy_object store callback)
- Fixed bug #52774 (Proxy object's store free callback calls zval_ptor_dtor on already freed data)
2010-10-04 07:15:30 +00:00
Dmitry Stogov
94dd83722b Changed the structure of op_array.opcodes. The constant values are moved from opcode operands into a separate literal table 2010-04-20 10:57:45 +00:00
Sebastian Bergmann
d2281d1dff sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php 2010-01-05 20:46:53 +00:00
Antony Dovgal
4e2c0bc905 MFH: fix bug #47353 (crash when creating a lot of objects in object destructor) 2009-02-11 09:58:23 +00:00
Sebastian Bergmann
08659c2dcd MFH: Bump copyright year, 3 of 3. 2008-12-31 11:15:49 +00:00
Marcus Boerger
ce2f9bb0cf - MFH Fix issue with destruction of overloaded objects 2008-08-24 16:49:19 +00:00
Felipe Pena
cf7384aa40 - MFH: Constness (Added const qualifier to several function parameters) 2008-08-12 17:20:25 +00:00
Dmitry Stogov
caee59b856 everted (this part was committed by mistake) 2008-02-19 17:05:41 +00:00
Dmitry Stogov
a4b872a6d8 iFixed memory leak 2008-02-19 12:00:53 +00:00
Dmitry Stogov
71592cec06 Added garbage collector 2008-01-22 09:27:48 +00:00
Sebastian Bergmann
d1dded8751 MFH: Bump copyright year, 2 of 2. 2007-12-31 07:17:19 +00:00
Yiduo (David) Wang
4b4d634cb9 MFH: Added macros for managing zval refcounts and is_ref statuses 2007-10-07 05:22:07 +00:00
Jani Taskinen
226c56fe76 MFH: Fixed compiler warnings 2007-07-21 00:35:15 +00:00
Sebastian Bergmann
4223aa4d5e MFH: Bump year. 2007-01-01 09:36:18 +00:00
Dmitry Stogov
6a8f267db6 Fixed bug #39602 (Invalid session.save_handler crashes PHP) 2006-11-23 08:07:05 +00:00
Dmitry Stogov
f5543a428d Fixed bug #38287 (static variables mess up global vars) 2006-08-07 15:15:22 +00:00
Dmitry Stogov
51e52e20ef Support for nested exceptions and fatal errors in destructors 2006-05-31 12:59:31 +00:00
Marcus Boerger
637a40423c - MFH as discussed
. zend_exception_get_default() -> zend_exception_get_default(TSRMLS_D)
  . zend_get_error_exception()   -> zend_get_error_exception(TSRMLS_D)
  . added E_RECOVERABLE_ERROR
  . added ZEND_TOSTRING_FUNC_NAME
  . added __tostring function cache to zend_class_entry
  . added ZEND_NAMED_ME
  . modified ZEND_ME_MAPPING to support method flags
  . added ZEND_MN
  . method entries now use prefix "zim_" instead of "zif_"
  . drop EG(ze1_compatibility_mode)
  . changed cast handler, now without (int should_free):
    typedef int (*zend_object_cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC);
  . changed get_iterator, now receives whether value is by ref:
    zend_object_iterator *(*get_iterator)(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC);
  . added zend_objects_store_add_ref_by_handle
  . added zend_objects_store_del_ref_by_handle
  . convert_to_explicit_type(pzv, type)
2006-05-09 23:53:23 +00:00
Antony Dovgal
1fa58ec003 initialize bucket #0 with nulls (normally it shouldn't be used at all, but if it is - we don't want any memory issues, do we?) 2006-03-28 21:58:01 +00:00
Dmitry Stogov
b8360c376b Fixed bug #36006 (Problem with $this in __destruct()) 2006-01-16 10:12:36 +00:00
Andi Gutmans
61e93ccfe8 - Update copyright notices to 2006 2006-01-04 23:53:05 +00:00
Dmitry Stogov
5519008169 Fixed call to __destruct() for objects of classes delivered from internal ones those use zend_objects_store_put(obj, NULL, ... 2005-11-15 12:41:31 +00:00
Ilia Alshanetsky
58a0906bf9 MFH: Fixed bug #34802 (Fixed crash on object instantiation failure). 2005-10-10 14:31:12 +00:00
Dmitry Stogov
386a3b9305 Fixed bug #34617 (zend_deactivate: objects_store used after zend_objects_store_destroy is called) 2005-09-27 18:07:41 +00:00
foobar
916815b779 Bump up the year 2005-08-03 13:30:58 +00:00
Dmitry Stogov
ce23692663 Fixed bug #32799 (crash: calling the corresponding global var during the destruct) 2005-06-06 10:38:43 +00:00
Marcus Boerger
237cd7e511 - We cannot provide this fallback becuase it requires zend_object ptr's.
# Found that out after discussing with Stas. As a consequence still every
# extension that provides specialised class types is responsible for
# calling its __destruct. This is currently not done for several exts.
2005-02-22 14:53:57 +00:00
Marcus Boerger
93e13aff05 - Force calling of dtors unless otherwise specified (fixes several __destruct bugs) 2005-02-22 11:43:05 +00:00
Stanislav Malyshev
3755c03291 fix crash when dtor is fialing on shutdown 2004-09-17 10:13:52 +00:00
Marcus Boerger
f5cf052225 - Fix bug #29368 : The destructor is called when an exception is thrown from the constructor 2004-07-25 17:25:44 +00:00
Andi Gutmans
0b0c5d3fac - Fix problem with object being destroyed more than once 2004-05-23 20:33:09 +00:00
Wez Furlong
3a4f33e31f As discussed with Andi, add this helper API for setting the object pointer from
within the constructor.

Please read the comment for notes about how to use it; in general, you don't
need it, so don't use it.
2004-05-17 11:27:16 +00:00
Wez Furlong
d056b25c3f Add count_elements handler for overloaded objects. 2004-05-04 15:03:28 +00:00
Ilia Alshanetsky
bf997c3eb3 Removed unused variable. 2004-04-04 18:28:59 +00:00
Stanislav Malyshev
7cf92e79ed return zval *, to make it useful for read_property 2004-03-21 18:27:58 +00:00
Stanislav Malyshev
b372b86b89 update to new API 2004-03-21 18:21:46 +00:00
Andi Gutmans
a87cc63aaa - Real fix for bug #27535 (Dmitry) 2004-03-11 13:40:19 +00:00
Andi Gutmans
aa472500e1 - Attempt to fix bug #27535 2004-03-11 13:27:18 +00:00
Andi Gutmans
1c180ba3e8 - Fix crash:
<?
class foo {
        function __destruct() {
                foreach ($this->x as $x);
        }
}
new foo();
echo 'OK';
?>
2004-03-03 09:58:58 +00:00
Marcus Boerger
ccef2cfb67 As Andi found out the dtor may increase the refcount. 2004-02-25 21:39:59 +00:00
Marcus Boerger
b0529e5485 Fix object destruction/free in shutdown
- set destructor_called even when no dtor is given
- use free_storage even when no dtor hat to be called
2004-02-25 08:16:54 +00:00
Marcus Boerger
98f725b0e0 Checking once for dtor is enough 2004-02-25 07:47:56 +00:00
Andi Gutmans
8a129bfc47 - Check if free_storage exists 2004-02-08 17:08:11 +00:00
Zeev Suraski
5c3e03a2ff The valid bit was necessary after all - restored 2004-02-04 12:30:48 +00:00
Zeev Suraski
6584dca194 Fixlets 2004-02-04 12:17:57 +00:00
Zeev Suraski
f5f7d569a0 Change destructor implementation (details will follow on internals@) 2004-02-04 09:56:20 +00:00
Zeev Suraski
3be75ceda2 Remove more garbage - valid bit was not really necessary 2004-02-03 15:49:15 +00:00
Zeev Suraski
c5a7b668cd - Clean garbage (delete was nuked a long time ago) 2004-02-03 15:37:37 +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
Marcus Boerger
296529b886 Split isset/isempty for object property and object dimension hooking. 2003-11-10 16:14:44 +00:00
Zeev Suraski
3f5acc73a5 Remove redundant callback, simplify API 2003-10-05 07:52:28 +00:00
Marcus Boerger
ca9c03b504 Add missing entry 2003-08-13 07:17:16 +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
Marcus Boerger
c9c1fcc026 More informative errors here and these are real core errors 2003-07-20 17:50:23 +00:00
Zeev Suraski
3cfa6a68f4 Add get_dim callback 2003-07-07 10:53:27 +00:00
Zeev Suraski
65f8bafb29 Fix & whitespace 2003-07-07 09:08:33 +00:00
James Cox
f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Zeev Suraski
f660d28143 - read_property cleanup
- Implement unset/isset/empty for PPP
2003-02-05 14:27:30 +00:00
foobar
333406bdc2 - Added some missing CVS $Id$ tags, headers and footers. 2003-02-01 01:49:15 +00:00
Stanislav Malyshev
683cf733bd extra safety 2003-01-29 14:27:40 +00:00
Sterling Hughes
d3f04d8ecc fix by phanto to the cloning 2003-01-21 00:00:38 +00:00
Harald Radi
5795ed62f4 make std_object_handlers struct available for shared modules 2003-01-17 21:16:12 +00:00
Andi Gutmans
94e6eb06dd - Don't check if the handle is bogus. We should crash. 2003-01-13 04:55:34 +00:00
Stanislav Malyshev
0ccbd37df7 validate handle 2003-01-12 12:56:04 +00:00
Andi Gutmans
43139dc755 - WS - Always use "if (" and not "if(" 2002-09-15 07:45:26 +00:00
Stanislav Malyshev
11fb07a360 Add ZEND_API to functions 2002-08-08 17:53:32 +00:00
Andi Gutmans
1b5ac1386e - Path which should improve previous fix. 2002-07-07 19:59:37 +00:00
Andi Gutmans
4271895222 - First try at solving problem with different objects being allocated the
- same id.
2002-07-07 19:34:34 +00:00
Andi Gutmans
e8fe69884f - Fix copy&paste problem where we allocated according to an old structure
- decleration and not the new one.
2002-06-15 08:47:11 +00:00
Andi Gutmans
006c46e920 - Fix build (one more coming up) 2002-05-31 15:34:12 +00:00
Stanislav Malyshev
f75f3cff82 Generalize object storage and reference bookkeeping 2002-05-31 12:09:19 +00:00