Commit Graph

255 Commits

Author SHA1 Message Date
Dmitry Stogov
5682438549 Better fix for exceptions in __sleep() 2005-09-12 07:13:54 +00:00
Wez Furlong
6b0d0f7ceb allow exceptions thrown in __sleep to interrupt the serialization process. refs PECL #5217 2005-09-10 17:47:20 +00:00
foobar
23e671a51e - Bumber up year 2005-08-03 14:08:58 +00:00
Dmitry Stogov
e4b1fb6455 Recursion protection 2005-07-21 07:18:02 +00:00
Stanislav Malyshev
62d4d8b8d2 fix handling of non-PHP classes (John Coggeshall) 2005-06-28 09:46:30 +00:00
Dmitry Stogov
415ec46927 Fixed incorrect usage of zend_mangle_property_name() (valgrind errors) 2005-06-08 15:48:12 +00:00
Dmitry Stogov
9383e1b858 Fixed bug #30791 (magic methods (__sleep/__wakeup/__toString) call __call if object is overloaded) 2005-06-01 11:03:58 +00:00
Stanislav Malyshev
db3fdce304 Custom object serializer infrastructure - PHP implementation
# The detailed announce on the list will follow
2005-02-23 11:17:52 +00:00
Derick Rethans
13c2cbb515 - MF43: Fixed bug #31072 (var_export() does not output an array element with an
empty string key). (Derick)
2004-12-17 14:40:39 +00:00
Marcus Boerger
f0c9f998d3 speling 2004-10-08 19:02:00 +00:00
Marcus Boerger
91af7f394f - Add some checks when unserializing data to prevent buffer overflows 2004-09-05 16:29:05 +00:00
Marcus Boerger
72000ecda9 Fix memleak in serialize 2004-09-02 18:28:47 +00:00
Ilia Alshanetsky
9996b5f731 Fixed leak when serializing protected & private properties. 2004-08-29 17:16:20 +00:00
Andrey Hristov
dd5538566e fix for bug 26737 : private & protected member variables not serialized
when user defined __sleep() is declared. Additionally E_NOTICE is
being thrown if __sleep() returns a non-existing member variable name
2004-08-21 13:49:19 +00:00
Marcus Boerger
c5b9577df8 Fix TSRM build 2004-07-04 11:14:17 +00:00
Moriyoshi Koizumi
a92af73136 - Bugfix #28325 (circular reference serialisation). 2004-07-03 16:10:28 +00:00
Andrey Hristov
19d0283ce8 for now removing ":public". Waiting for a decision? ":public" will require
quite a lot of phpt files changes.
2004-05-20 21:15:42 +00:00
Andrey Hristov
aafb2b1581 var_dump() now shows private and protected member variables.
Not BC is that since now the public variables are explicitly shown as public
Example :

class a{ protected $a=1; private $b=2;var $c=3;} $a=new a(); var_dump($a);

object(a)#1 (3) {
  ["a:protected"]=>
  int(1)
  ["b:private"]=>
  int(2)
  ["c:public"]=>
  int(3)
}
2004-05-20 17:46:20 +00:00
Dmitry Stogov
deb84befae BUG #27469 was fixed (serialize() objects of incomplete class) 2004-03-18 16:54:36 +00:00
Ard Biesheuvel
b303ba089c More wordsize fixes 2004-03-08 23:11:45 +00:00
Ilia Alshanetsky
6112260738 Fixed compiler warnings. 2004-03-08 03:06:56 +00:00
Ard Biesheuvel
81f05c18f5 Wordsize fixes 2004-02-25 20:16:27 +00:00
Stanislav Malyshev
794975d97f ce is not used, don't get it 2004-02-16 11:21:31 +00:00
Stanislav Malyshev
1c433049ca fix serialization 2004-02-05 09:07:46 +00:00
Stanislav Malyshev
3fd027c5ac fix bug #27120 and bug #25975 - preserve is_ref when bound
objects are serialized
2004-02-03 14:12:59 +00:00
Andi Gutmans
dbeb4158d2 - A belated happy holidays and PHP 5 2004-01-08 08:18:22 +00:00
Derick Rethans
6923a16c26 - Fixed var_export() to show public, protected and private modifiers properly.
- Exported (un)mangle_property_name.
2004-01-03 13:51:02 +00:00
Derick Rethans
287834a5af - Fix typo 2003-12-28 21:56:15 +00:00
Ilia Alshanetsky
91052eb93b Fixed bug #26458 (var_dump(), var_export(), debug_zval_dump() not binary
safe for array keys).
2003-11-29 04:43:06 +00:00
Wez Furlong
28277f1d00 fix #26001; serialize crashes when accessing an overloaded
object that has no properties (NULL hashtable).
2003-11-28 15:42:58 +00:00
Moriyoshi Koizumi
bb6f3a115e Fixed bug #24394 (serializing cross-referenced objects causes segfault) 2003-11-04 16:08:10 +00:00
Moriyoshi Koizumi
ed40a56c6c Oops.. 2003-10-08 01:51:32 +00:00
Moriyoshi Koizumi
f4595d18af Better fix for bug #25758 2003-10-08 01:49:31 +00:00
Ilia Alshanetsky
6f8b8ade45 Fixed bug #25758 (var_export does not escape ' & \ inside array keys) 2003-10-08 01:16:44 +00:00
Sascha Schumann
6a7dde29e7 kill warnings 2003-08-28 16:28:33 +00:00
Ilia Alshanetsky
ed40ae2650 emalloc -> safe_emalloc 2003-08-11 23:16:54 +00:00
Ilia Alshanetsky
4320c6994f Fixed bug #21957 (serialize() mangles objects with __sleep). 2003-08-11 03:22:24 +00:00
Stanislav Malyshev
d113d32314 Don't try to __sleep incomplete classes 2003-08-05 09:19:38 +00:00
James Cox
f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Ilia Alshanetsky
b20df54af7 Make serialize precision a configurable option. 2003-05-08 01:23:21 +00:00
Ilia Alshanetsky
7f404846ad s/g/G/ 2003-05-05 22:21:29 +00:00
Ilia Alshanetsky
88bafcb7a5 Safer implementation.
Thanks Marcus.
2003-05-04 19:09:54 +00:00
Ilia Alshanetsky
75c01dd66b Fixed bug #23298 (serialize cuts off floats & doubles) 2003-05-04 18:41:02 +00:00
Derick Rethans
9ab3ad2963 - Commit the .c file too... 2003-04-28 18:52:59 +00:00
Moriyoshi Koizumi
cf620ddfdb Unified all those redundant printf's 2003-04-21 18:00:41 +00:00
Stanislav Malyshev
5a904d6ea8 Update to latest inteface change for get_class_name 2003-04-21 17:03:29 +00:00
Moriyoshi Koizumi
47e40e1b98 Improved var_dump() and debug_zval_dump() so they also show the
namespace of the given object.
2003-03-29 21:29:22 +00:00
Andrei Zmievski
b1546a1775 Print the object handle (it's useful). 2003-03-10 15:13:32 +00:00
Wez Furlong
84f83e8559 Don't assume that objects have class entries (in the ZE1 sense) when
determining the class name.
Additionally, don't assume that objects have a properties hash either.
2003-02-01 03:52:31 +00:00
Sascha Schumann
bea6ff5183 Unbreak $Id tag 2003-01-31 16:24:12 +00:00
Andrey Hristov
309ef518fc Renamed get_memory_usage() to memory_get_usage() (per Andi's advice)
This doesn't break any BC.
2003-01-18 15:03:01 +00:00
Andrey Hristov
7866f02260 added function get_memory_usage(). available only when PHP is compiled
with --enable-memory-limit
2003-01-14 18:26:47 +00:00
Stanislav Malyshev
bcc1e5a74e remove unneeded var 2003-01-12 13:50:17 +00:00
Sebastian Bergmann
b506f5c8f8 Bump year. 2002-12-31 16:08:15 +00:00
Marcus Boerger
49a99a98f4 -php_error -> php_error_docref
-removed some cases where emalloc result was tested
2002-12-05 20:59:49 +00:00
Derick Rethans
e06550f853 - Fix problem with var_export when objects with numeric indexes were
exported. We now skip those, as there is no way to export valid code for
  it.
2002-10-11 13:49:20 +00:00
Zeev Suraski
df55f35798 Revert the implicit_flush mess.
Do not revert it again under any circumstances!

Yasuo/anybody else - if there are issues with implicit_flush, please inform
me and I will fix them.
2002-10-06 12:02:53 +00:00
Yasuo Ohgaki
39b0eb9b22 Fixed broken code by Derick.
ob_implicit_flush() and ob_flush_all() are stopped working.
var_dump() and hightlisht_string() outputs buffer contents wrongly
with ob_implicit_flush().

Everyone should be happy now.
It was only OG(implicit_flush) interpretation issue after all.
2002-10-03 13:32:01 +00:00
Derick Rethans
9b517c4b93 - Revert changed to implicit_flush behavior. The new behavior was not
intended in the first place.
2002-10-03 10:35:33 +00:00
Yasuo Ohgaki
1731767272 Prevent unwanted fluhsing. 2002-10-03 08:54:45 +00:00
Andi Gutmans
1f58a8f087 - No idea why this wasn't crashing before. 2002-06-26 07:36:01 +00:00
Derick Rethans
ba5257a2ec - Fix for bug #16065 2002-06-18 11:09:21 +00:00
Stanislav Malyshev
11df2122df Add comments for the fix 2002-04-29 16:02:41 +00:00
Stanislav Malyshev
91a78e2974 Fix here too 2002-04-29 16:02:10 +00:00
Stanislav Malyshev
aa10ac9a64 Yet another serialization fix - for incomplete class 2002-04-29 15:44:30 +00:00
Stanislav Malyshev
a57381e3bd Fix couple of nasty serializer bugs:
a) When array unserializer encounters less data than it expects (like:
a:1:{}) it crashes. I don't understand exactly why it does, but the fact
is it does. So now it should catch "}" and bail out.
b) When array/object data are serialized, the count is written by hash
count. However, it can be that in-loop check fails and less data than
expected will then be written into the array. Which, due to a), would
crash on unserialize. So now it will write empty entries in place of
entries it cannot serialize (the other choice would be make two passes on
the data, which I don't like).
2002-04-28 16:56:33 +00:00
Sascha Schumann
d30fc27e5a simplify and improve speed of smart_str_print_long.
also add a variant for unsigned numbers.
2002-04-21 01:17:49 +00:00
Thies C. Arntzen
3550d75d0f fix #12793 - serialize will now spit a notice if the return value of __sleep is
bogus.
2002-03-19 11:25:21 +00:00
Wez Furlong
1cc6a8e998 it's late; no more commits from me tonight... 2002-03-15 02:06:08 +00:00
Wez Furlong
0454ad4de8 should have diffed first... 2002-03-15 02:00:55 +00:00
Wez Furlong
ae9db4e440 fix for ZE2 compile 2002-03-15 01:58:00 +00:00
Derick Rethans
7935e73749 - Fix bug #16078 2002-03-14 18:41:35 +00:00
Wez Furlong
93ad205756 fix buglet 2002-03-14 14:05:13 +00:00
Yasuo Ohgaki
dcd86d154e Fixed var_dump() crash when there is recursion.
# Since I said it's easy to fix :)
2002-03-14 09:36:13 +00:00
Yasuo Ohgaki
82a8d372e5 Added ob_get_status() to get array of buffers and it's status.
(DO NOT document this function yet)

Fixed crash bug with ob_end_*() function. ob_end_*() will not delete
buffers that may not be deleted.

php_start_ob_buffer() and php_ob_set_internal_handler() takes parameter for
if the buffer created may be deleted or not.

Added 3rd parameter "bool erase" to ob_start(). If FALSE, buffer may not be
deleted until script finshes.

Changed ob_*() function that have void return type to bool. All ob_*()
functions return TRUE for success, FALSE for failure.

@ - Added ob_get_status() to get array of buffers and it's status. (Yasuo)
@ - Fixed crash bug with ob_end_*() function. ob_end_*() will not delete
@   buffers that may not be deleted. (Yasuo)
@ - Added 3rd parameter "bool erase" to ob_start(). If FALSE, buffer may not be
@   deleted until script finshes. (Yasuo)
@ - Changed ob_*() function that have void return type to bool. All ob_*()
@   functions return TRUE for success, FALSE for failure. (Yasuo)
2002-03-01 03:05:50 +00:00
Derick Rethans
27c4648010 - Make it a boolean 2002-02-28 16:00:26 +00:00
Derick Rethans
b5a0fd24a1 - Fix the fix.. no need to escape " in single quotes 2002-02-24 14:07:10 +00:00
Derick Rethans
a4946ca375 - Add slashes around string output 2002-02-24 13:26:43 +00:00
Jason Greene
150d339231 Renamed zval_debug_dump() to debug_zval_dump() 2002-02-10 17:38:15 +00:00
Jason Greene
91ac18bc66 @Added zval_debug_dump which works similar to var_dump yet displays extra
internal information such as refcounts, and the true type names (Jason)
2002-02-10 06:52:35 +00:00
Derick Rethans
f5f4a5cf37 - TSRMLS here and there, it's all about the Windows flair 2001-12-15 14:55:18 +00:00
Derick Rethans
143df7de6b - Added a second parameter to var_export which makes the function return
the variable representation in a string.
2001-12-15 14:45:59 +00:00
Sebastian Bergmann
38933514e1 Update headers. 2001-12-11 15:32:16 +00:00
Derick Rethans
a7b9d5590b - Remove debug code 2001-12-08 23:46:19 +00:00
Derick Rethans
3cb1db985e - Added var_export, which shows a representation of a variable, much like
var_dump, but in such a way you can use it as PHP code.
@- Added var_export, which shows a representation of a variable, much like
@  var_dump, but in such a way you can use it as PHP code. (Derick)
2001-12-08 23:44:34 +00:00
Thies C. Arntzen
0fd809a770 improve last patch:
non existant object variables are now serialized as NULL, this saves us from
buffering the serialized data.
2001-12-01 15:17:50 +00:00
Thies C. Arntzen
7ff5198c53 serialized data would be incoorect if __sleep() returned a variable-name
which is non-existant in the object.
submitted by: Bernd Roemer <berndr@bonn.edu>
2001-12-01 15:06:37 +00:00
Sascha Schumann
f341f630d3 Rewrite of unserializer which should be more maintainable and extensible.
Changes pass `make test´ and a couple of custom tests.

Enjoy.
2001-11-10 21:18:34 +00:00
Jeroen van Wolffelaar
c033288573 Back-substitute for Z_* macro's. If it breaks some extension (the script isn't optimal, it parses for example var->zval.value incorrect) please let me know. 2001-09-25 21:58:48 +00:00
Derick Rethans
78747bd2df - Don't wrap lines... this is annoying while coding. 2001-09-09 13:29:31 +00:00
Zeev Suraski
e140b35b04 API update 2001-08-21 12:57:53 +00:00
Sterling Hughes
06aa7a4d19 Cleanup of var_dump() with correct macro's, k&r indent, and removal of a
pair of unnecessary { }
2001-08-17 07:50:15 +00:00
Andi Gutmans
4580df1080 - This code looks OK so remove FIXME comment 2001-08-14 17:43:39 +00:00
Zeev Suraski
c0404f4631 Whitespace 2001-08-11 17:03:37 +00:00
Thies C. Arntzen
a35df189b8 we can no longer register internal-classes once the script is started.
therefore the "incomplete class" is now registered at MINIT time.
2001-08-06 13:36:08 +00:00
Sascha Schumann
a19563c8dc more tsrm cleanup 2001-08-05 16:52:29 +00:00
Sascha Schumann
373b3e101e more tsrm cleanup -- output.c is not doing any fetches anymore 2001-08-05 15:55:43 +00:00
Thies C. Arntzen
dca5f8dce4 fix serialize:
- keys no longer have a trailing \0
- no leak on calling __wakeup (also saved 2* malloc & free)
- serializing objects that implement __sleep() works again
- make test works again:-)
2001-08-04 17:29:54 +00:00
Sebastian Bergmann
724b4d409c Eliminate TSRMLS_FETCH() call. 2001-08-04 05:37:11 +00:00
Sebastian Bergmann
ea79632b29 Fix Win32 (and maybe other ZTS) builds. 2001-08-04 05:22:55 +00:00