]> granicus.if.org Git - php/commitdiff
- fix bug #60879, unserialize does not invoke __wakeup
authorPierre Joye <pajoye@php.net>
Tue, 28 Feb 2012 18:36:10 +0000 (18:36 +0000)
committerPierre Joye <pajoye@php.net>
Tue, 28 Feb 2012 18:36:10 +0000 (18:36 +0000)
NEWS
ext/standard/var_unserializer.c
ext/standard/var_unserializer.re

diff --git a/NEWS b/NEWS
index d205b8b2911a3ce50f6d2737684885c042811179..04eae243820b105d01149301202d85a3ead42fbe 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,8 @@ PHP                                                                        NEWS
     default (Stas).
   . Fixed bug #60965 (Buffer overflow on htmlspecialchars/entities with
     $double=false). (Gustavo)
+  . Fixed bug #60879 (unserialize() Does not invoke __wakeup() on object).
+    (Pierre, Steve)
   . Fixed output layer compat function not passing along input buffer with 
     php_output_context_pass() if the output_handler_func does not set out_str
     (releaze3 at gmail dot com, Mike)
index b1c03dd80b22d2cb833def88b3abf9e73338566c..e1ac636d04c3a78fc1e47a4d16bfe784205b075e 100644 (file)
@@ -375,6 +375,9 @@ static inline long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry *ce)
        return elements;
 }
 
+#ifdef PHP_WIN32
+# pragma optimize("", off)
+#endif
 static inline int object_common2(UNSERIALIZE_PARAMETER, long elements)
 {
        zval *retval_ptr = NULL;
@@ -399,6 +402,9 @@ static inline int object_common2(UNSERIALIZE_PARAMETER, long elements)
        return finish_nested_data(UNSERIALIZE_PASSTHRU);
 
 }
+#ifdef PHP_WIN32
+# pragma optimize("", on)
+#endif
 
 PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
 {
index 7ea277b8b2206fe1a79d336931b9d014521639fd..860b3947b9495680a69f4dbd22cc65fc95ec070e 100644 (file)
@@ -379,6 +379,9 @@ static inline long object_common1(UNSERIALIZE_PARAMETER, zend_class_entry *ce)
        return elements;
 }
 
+#ifdef PHP_WIN32
+# pragma optimize("", off)
+#endif
 static inline int object_common2(UNSERIALIZE_PARAMETER, long elements)
 {
        zval *retval_ptr = NULL;
@@ -403,6 +406,9 @@ static inline int object_common2(UNSERIALIZE_PARAMETER, long elements)
        return finish_nested_data(UNSERIALIZE_PASSTHRU);
 
 }
+#ifdef PHP_WIN32
+# pragma optimize("", on)
+#endif
 
 PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
 {