]> granicus.if.org Git - php/commitdiff
Unbundle ext/wddx
authorChristoph M. Becker <cmbecker69@gmx.de>
Wed, 20 Mar 2019 13:15:50 +0000 (14:15 +0100)
committerChristoph M. Becker <cmbecker69@gmx.de>
Wed, 20 Mar 2019 13:15:50 +0000 (14:15 +0100)
The extension is now available from <https://pecl.php.net/package/wddx>.

Cf. <https://wiki.php.net/rfc/deprecate-and-remove-ext-wddx>.

51 files changed:
EXTENSIONS
NEWS
UPGRADING
ext/wddx/CREDITS [deleted file]
ext/wddx/config.m4 [deleted file]
ext/wddx/config.w32 [deleted file]
ext/wddx/php_wddx.h [deleted file]
ext/wddx/php_wddx_api.h [deleted file]
ext/wddx/tests/001-64bit.phpt [deleted file]
ext/wddx/tests/001.phpt [deleted file]
ext/wddx/tests/002.phpt [deleted file]
ext/wddx/tests/003.phpt [deleted file]
ext/wddx/tests/004.phpt [deleted file]
ext/wddx/tests/005.phpt [deleted file]
ext/wddx/tests/bug27287.phpt [deleted file]
ext/wddx/tests/bug34306.phpt [deleted file]
ext/wddx/tests/bug35410.phpt [deleted file]
ext/wddx/tests/bug35410_64bit.phpt [deleted file]
ext/wddx/tests/bug37569.phpt [deleted file]
ext/wddx/tests/bug37587.phpt [deleted file]
ext/wddx/tests/bug41283.phpt [deleted file]
ext/wddx/tests/bug41527.phpt [deleted file]
ext/wddx/tests/bug45901.phpt [deleted file]
ext/wddx/tests/bug48562.phpt [deleted file]
ext/wddx/tests/bug52468.phpt [deleted file]
ext/wddx/tests/bug68996.phpt [deleted file]
ext/wddx/tests/bug70661.phpt [deleted file]
ext/wddx/tests/bug70741.phpt [deleted file]
ext/wddx/tests/bug71335.phpt [deleted file]
ext/wddx/tests/bug71587.phpt [deleted file]
ext/wddx/tests/bug72142.phpt [deleted file]
ext/wddx/tests/bug72340.phpt [deleted file]
ext/wddx/tests/bug72564.phpt [deleted file]
ext/wddx/tests/bug72749.phpt [deleted file]
ext/wddx/tests/bug72750.phpt [deleted file]
ext/wddx/tests/bug72790.phpt [deleted file]
ext/wddx/tests/bug72799.phpt [deleted file]
ext/wddx/tests/bug72860.phpt [deleted file]
ext/wddx/tests/bug73065.phpt [deleted file]
ext/wddx/tests/bug73173.phpt [deleted file]
ext/wddx/tests/bug73331.phpt [deleted file]
ext/wddx/tests/bug73631.phpt [deleted file]
ext/wddx/tests/bug73793.phpt [deleted file]
ext/wddx/tests/bug73831.phpt [deleted file]
ext/wddx/tests/bug74145.phpt [deleted file]
ext/wddx/tests/bug74145.xml [deleted file]
ext/wddx/tests/bug75055.phpt [deleted file]
ext/wddx/tests/bug75055.wddx [deleted file]
ext/wddx/tests/wddx.xml [deleted file]
ext/wddx/wddx.c [deleted file]
main/internal_functions_win32.c

index 387fde18f008cc1860ef85f640167aa0b031d40c..ce75f64f6bbbab9a7d246be40b0a81907063a098 100644 (file)
@@ -201,11 +201,6 @@ PRIMARY MAINTAINER:  Dmitry Stogov <dmitry@php.net> (2004 - 2018)
 MAINTENANCE:         Maintained
 STATUS:              Working
 -------------------------------------------------------------------------------
-EXTENSION:           wddx
-PRIMARY MAINTAINER:  Andrei Zmievski <andrei@php.net> (1999 - 2003)
-MAINTENANCE:         Orphaned
-STATUS:              Working
--------------------------------------------------------------------------------
 EXTENSION:           xml
 PRIMARY MAINTAINER:  Thies C. Arntzen <thies@thieso.net> (1999 - 2002)
                      Rob Richards <rrichards@php.net> (2003 - 2013)
diff --git a/NEWS b/NEWS
index 00a77993e4d9a9879cd08b77245050cf24e2c6ff..d88c4588082779a24d41b06fb172fc52ef62312b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -113,6 +113,6 @@ PHP                                                                        NEWS
     tidy_get_root, and tidy_getopt) (tandre)
 
 - WDDX:
-  . Deprecated the WDDX extension. (cmb)
+  . Deprecated and unbundled the WDDX extension. (cmb)
 
 <<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
index 6934c767a147d5bfe6cbfd9339b3781446a9180a..cc9507c50fb780e2cf5df5c2ff77cfc07a48e125 100644 (file)
--- a/UPGRADING
+++ b/UPGRADING
@@ -287,7 +287,7 @@ PHP 7.4 UPGRADE NOTES
   . The @param notation can now also be used to denote SQL query parameters.
 
 - WDDX:
-  . The WDDX extension has been deprecated.
+  . The WDDX extension has been deprecated and moved to PECL.
 
 - Zip:
   . The bundled libzip library has been removed. A system libzip >= 0.11 is now
diff --git a/ext/wddx/CREDITS b/ext/wddx/CREDITS
deleted file mode 100644 (file)
index 4c98513..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-WDDX
-Andrei Zmievski
diff --git a/ext/wddx/config.m4 b/ext/wddx/config.m4
deleted file mode 100644 (file)
index 548009e..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-dnl config.m4 for extension wddx
-
-PHP_ARG_ENABLE([wddx],
-  [whether to enable WDDX support],
-  [AS_HELP_STRING([--enable-wddx],
-    [Enable WDDX support])])
-
-if test -z "$PHP_LIBXML_DIR"; then
-  PHP_ARG_WITH([libxml-dir],
-    [libxml2 install dir],
-    [AS_HELP_STRING([--with-libxml-dir=DIR],
-      [WDDX: libxml2 install prefix])],
-    [no],
-    [no])
-fi
-
-PHP_ARG_WITH([libexpat-dir],
-  [libexpat dir for WDDX],
-  [AS_HELP_STRING([--with-libexpat-dir=DIR],
-    [WDDX: libexpat dir for XMLRPC-EPI (deprecated)])],
-  [no],
-  [no])
-
-if test "$PHP_WDDX" != "no"; then
-
-  dnl
-  dnl Default to libxml2 if --with-libexpat-dir is not used
-  dnl
-  if test "$PHP_LIBEXPAT_DIR" = "no"; then
-    if test "$PHP_LIBXML" = "no"; then
-      AC_MSG_ERROR([WDDX extension requires LIBXML extension, add --enable-libxml])
-    fi
-
-    PHP_SETUP_LIBXML(WDDX_SHARED_LIBADD, [
-      if test "$PHP_XML" = "no"; then
-        PHP_ADD_SOURCES(ext/xml, compat.c)
-        PHP_ADD_BUILD_DIR(ext/xml)
-      fi
-    ], [
-      AC_MSG_ERROR([libxml2 not found. Use --with-libxml-dir=<DIR>])
-    ])
-  fi
-
-  dnl
-  dnl Check for expat only if --with-libexpat-dir is used.
-  dnl
-  if test "$PHP_LIBEXPAT_DIR" != "no"; then
-    for i in $PHP_XML $PHP_LIBEXPAT_DIR /usr /usr/local; do
-      if test -f "$i/$PHP_LIBDIR/libexpat.a" || test -f "$i/$PHP_LIBDIR/libexpat.$SHLIB_SUFFIX_NAME"; then
-        EXPAT_DIR=$i
-        break
-      fi
-    done
-
-    if test -z "$EXPAT_DIR"; then
-      AC_MSG_ERROR([not found. Please reinstall the expat distribution.])
-    fi
-
-    PHP_ADD_INCLUDE($EXPAT_DIR/include)
-    PHP_ADD_LIBRARY_WITH_PATH(expat, $EXPAT_DIR/$PHP_LIBDIR, WDDX_SHARED_LIBADD)
-    AC_DEFINE(HAVE_LIBEXPAT, 1, [ ])
-  fi
-
-  AC_DEFINE(HAVE_WDDX, 1, [ ])
-  PHP_NEW_EXTENSION(wddx, wddx.c, $ext_shared)
-  PHP_ADD_EXTENSION_DEP(wddx, libxml)
-  PHP_SUBST(XMLRPC_SHARED_LIBADD)
-fi
diff --git a/ext/wddx/config.w32 b/ext/wddx/config.w32
deleted file mode 100644 (file)
index d5d4e80..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-// vim:ft=javascript
-
-ARG_WITH("wddx", "WDDX support", "yes");
-
-if (PHP_WDDX == "yes" &&
-       PHP_LIBXML == "yes" &&
-       CHECK_HEADER_ADD_INCLUDE("libxml/parser.h", "CFLAGS_WDDX", PHP_PHP_BUILD + "\\include\\libxml2")
-) {
-       EXTENSION("wddx", "wddx.c");
-       AC_DEFINE("HAVE_WDDX", 1, "WDDX support");
-
-       if (!PHP_WDDX_SHARED) {
-               ADD_FLAG("CFLAGS_WDDX", "/D LIBXML_STATIC");
-       } else {
-               if (!CHECK_LIB("libxml2.lib", "wddx")) {
-                       WARNING("wddx support can't be enabled, libxml is not found")
-               }
-       }
-
-       ADD_EXTENSION_DEP('wddx', 'libxml');
-       ADD_EXTENSION_DEP('wddx', 'xml')
-       CHECK_HEADER_ADD_INCLUDE("timelib_config.h", "CFLAGS_WDDX", "ext/date/lib");
-}
diff --git a/ext/wddx/php_wddx.h b/ext/wddx/php_wddx.h
deleted file mode 100644 (file)
index 457c50a..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-   +----------------------------------------------------------------------+
-   | PHP Version 7                                                        |
-   +----------------------------------------------------------------------+
-   | Copyright (c) The PHP Group                                          |
-   +----------------------------------------------------------------------+
-   | This source file is subject to version 3.01 of the PHP license,      |
-   | that is bundled with this package in the file LICENSE, and is        |
-   | available through the world-wide-web at the following url:           |
-   | http://www.php.net/license/3_01.txt                                  |
-   | If you did not receive a copy of the PHP license and are unable to   |
-   | obtain it through the world-wide-web, please send a note to          |
-   | license@php.net so we can mail you a copy immediately.               |
-   +----------------------------------------------------------------------+
-   | Author: Andrei Zmievski <andrei@php.net>                             |
-   +----------------------------------------------------------------------+
- */
-
-#ifndef PHP_WDDX_H
-#define PHP_WDDX_H
-
-#if HAVE_WDDX
-
-extern zend_module_entry wddx_module_entry;
-#define wddx_module_ptr &wddx_module_entry
-
-#include "php_version.h"
-#define PHP_WDDX_VERSION PHP_VERSION
-
-PHP_FUNCTION(wddx_serialize_value);
-PHP_FUNCTION(wddx_serialize_vars);
-PHP_FUNCTION(wddx_packet_start);
-PHP_FUNCTION(wddx_packet_end);
-PHP_FUNCTION(wddx_add_vars);
-PHP_FUNCTION(wddx_deserialize);
-
-#else
-
-#define wddx_module_ptr NULL
-
-#endif /* HAVE_WDDX */
-
-#define phpext_wddx_ptr wddx_module_ptr
-
-#endif /* !PHP_WDDX_H */
diff --git a/ext/wddx/php_wddx_api.h b/ext/wddx/php_wddx_api.h
deleted file mode 100644 (file)
index d980d7f..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-   +----------------------------------------------------------------------+
-   | PHP Version 7                                                        |
-   +----------------------------------------------------------------------+
-   | Copyright (c) The PHP Group                                          |
-   +----------------------------------------------------------------------+
-   | This source file is subject to version 3.01 of the PHP license,      |
-   | that is bundled with this package in the file LICENSE, and is        |
-   | available through the world-wide-web at the following url:           |
-   | http://www.php.net/license/3_01.txt                                  |
-   | If you did not receive a copy of the PHP license and are unable to   |
-   | obtain it through the world-wide-web, please send a note to          |
-   | license@php.net so we can mail you a copy immediately.               |
-   +----------------------------------------------------------------------+
-   | Author:  Andrei Zmievski <andrei@ispi.net>                           |
-   +----------------------------------------------------------------------+
- */
-
-#ifndef PHP_WDDX_API_H
-#define PHP_WDDX_API_H
-
-#include "zend_smart_str_public.h"
-
-#define WDDX_ARRAY_S                   "<array length='%d'>"
-#define WDDX_ARRAY_E                   "</array>"
-#define WDDX_BINARY_S                  "<binary>"
-#define WDDX_BINARY_E                  "</binary>"
-#define WDDX_BOOLEAN_TRUE              "<boolean value='true'/>"
-#define WDDX_BOOLEAN_FALSE             "<boolean value='false'/>"
-#define WDDX_CHAR                              "<char code='%02X'/>"
-#define WDDX_COMMENT_S                 "<comment>"
-#define WDDX_COMMENT_E                 "</comment>"
-#define WDDX_DATA_S                            "<data>"
-#define WDDX_DATA_E                            "</data>"
-#define WDDX_HEADER                            "<header/>"
-#define WDDX_HEADER_S                  "<header>"
-#define WDDX_HEADER_E                  "</header>"
-#define WDDX_NULL                              "<null/>"
-#define WDDX_NUMBER                            "<number>%s</number>"
-#define WDDX_PACKET_S                  "<wddxPacket version='1.0'>"
-#define WDDX_PACKET_E                  "</wddxPacket>"
-#define WDDX_STRING_S                  "<string>"
-#define WDDX_STRING_E                  "</string>"
-#define WDDX_STRUCT_S                  "<struct>"
-#define WDDX_STRUCT_E                  "</struct>"
-#define WDDX_VAR_S                             "<var name='%s'>"
-#define WDDX_VAR_E                             "</var>"
-
-#define php_wddx_add_chunk(packet, str)        smart_str_appends(packet, str)
-#define php_wddx_add_chunk_ex(packet, str, len)        smart_str_appendl(packet, str, len)
-#define php_wddx_add_chunk_static(packet, str) smart_str_appendl(packet, str, sizeof(str)-1)
-
-typedef smart_str wddx_packet;
-
-wddx_packet* php_wddx_constructor(void);
-void            php_wddx_destructor(wddx_packet *packet);
-
-void            php_wddx_packet_start(wddx_packet *packet, char *comment, size_t comment_len);
-void            php_wddx_packet_end(wddx_packet *packet);
-
-void            php_wddx_serialize_var(wddx_packet *packet, zval *var, zend_string *name);
-int             php_wddx_deserialize_ex(const char *, size_t, zval *return_value);
-#define php_wddx_gather(packet) estrndup(packet->c, packet->len)
-
-#endif /* PHP_WDDX_API_H */
diff --git a/ext/wddx/tests/001-64bit.phpt b/ext/wddx/tests/001-64bit.phpt
deleted file mode 100644 (file)
index c0cd49c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
---TEST--
-wddx deserialization test (64-bit)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
-<?php echo PHP_INT_SIZE != 8 ? "skip 64-bit only" : "OK" ?>
---INI--
-precision=14
---FILE--
-<?php
-       $path = __DIR__;
-       var_dump(wddx_deserialize(file_get_contents("{$path}/wddx.xml")));
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(11) {
-  ["aNull"]=>
-  NULL
-  ["aString"]=>
-  string(8) "a string"
-  ["aNumber"]=>
-  float(-12.456)
-  ["aDateTime"]=>
-  int(897625932)
-  ["aDateTime2"]=>
-  int(329632332)
-  ["aDateTime3"]=>
-  int(2223088332)
-  ["aBoolean"]=>
-  bool(true)
-  ["anArray"]=>
-  array(2) {
-    [0]=>
-    int(10)
-    [1]=>
-    string(14) "second element"
-  }
-  ["aBinary"]=>
-  string(11) "binary data"
-  ["anObject"]=>
-  array(2) {
-    ["s"]=>
-    string(8) "a string"
-    ["n"]=>
-    float(-12.456)
-  }
-  ["aRecordset"]=>
-  array(2) {
-    ["NAME"]=>
-    array(2) {
-      [0]=>
-      string(8) "John Doe"
-      [1]=>
-      string(8) "Jane Doe"
-    }
-    ["AGE"]=>
-    array(2) {
-      [0]=>
-      int(34)
-      [1]=>
-      int(31)
-    }
-  }
-}
diff --git a/ext/wddx/tests/001.phpt b/ext/wddx/tests/001.phpt
deleted file mode 100644 (file)
index a38d7d1..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
---TEST--
-wddx deserialization test (32-bit)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
-<?php echo PHP_INT_SIZE == 8 ? "skip 32-bit only" : "OK" ?>
---INI--
-precision=14
---FILE--
-<?php
-       $path = __DIR__;
-       var_dump(wddx_deserialize(file_get_contents("{$path}/wddx.xml")));
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(11) {
-  ["aNull"]=>
-  NULL
-  ["aString"]=>
-  string(8) "a string"
-  ["aNumber"]=>
-  float(-12.456)
-  ["aDateTime"]=>
-  int(897625932)
-  ["aDateTime2"]=>
-  int(329632332)
-  ["aDateTime3"]=>
-  string(22) "2040-06-12T04:32:12+00"
-  ["aBoolean"]=>
-  bool(true)
-  ["anArray"]=>
-  array(2) {
-    [0]=>
-    int(10)
-    [1]=>
-    string(14) "second element"
-  }
-  ["aBinary"]=>
-  string(11) "binary data"
-  ["anObject"]=>
-  array(2) {
-    ["s"]=>
-    string(8) "a string"
-    ["n"]=>
-    float(-12.456)
-  }
-  ["aRecordset"]=>
-  array(2) {
-    ["NAME"]=>
-    array(2) {
-      [0]=>
-      string(8) "John Doe"
-      [1]=>
-      string(8) "Jane Doe"
-    }
-    ["AGE"]=>
-    array(2) {
-      [0]=>
-      int(34)
-      [1]=>
-      int(31)
-    }
-  }
-}
diff --git a/ext/wddx/tests/002.phpt b/ext/wddx/tests/002.phpt
deleted file mode 100644 (file)
index 1783cbe..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-wddx packet construction using wddx ressource
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---INI--
-precision=14
---FILE--
-<?php
-       $pkt = wddx_packet_start('TEST comment');
-
-       $var1 = NULL;
-       $var2 = 'some string';
-       $var3 = 756;
-       $var4 = true;
-
-       // add vars to packet
-       wddx_add_vars($pkt, 'var1', 'var2', array('var3', 'var4'));
-       echo wddx_packet_end($pkt);
-?>
---EXPECTF--
-Deprecated: Function wddx_packet_start() is deprecated in %s on line %d
-
-Deprecated: Function wddx_add_vars() is deprecated in %s on line %d
-
-Deprecated: Function wddx_packet_end() is deprecated in %s on line %d
-<wddxPacket version='1.0'><header><comment>TEST comment</comment></header><data><struct><var name='var1'><null/></var><var name='var2'><string>some string</string></var><var name='var3'><number>756</number></var><var name='var4'><boolean value='true'/></var></struct></data></wddxPacket>
diff --git a/ext/wddx/tests/003.phpt b/ext/wddx/tests/003.phpt
deleted file mode 100644 (file)
index b9155b1..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-wddx deserialize from ressource
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---INI--
-precision=14
---FILE--
-<?php
-       $path = __DIR__;
-       $fp = fopen("php://temp", 'w+');
-       fputs($fp, "<wddxPacket version='1.0'><header><comment>TEST comment</comment></header><data><struct><var name='var1'><null/></var><var name='var2'><string>some string</string></var><var name='var3'><number>756</number></var><var name='var4'><boolean value='true'/></var></struct></data></wddxPacket>");
-       rewind($fp);
-       var_dump(wddx_deserialize($fp));
-       fclose($fp);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(4) {
-  ["var1"]=>
-  NULL
-  ["var2"]=>
-  string(11) "some string"
-  ["var3"]=>
-  int(756)
-  ["var4"]=>
-  bool(true)
-}
diff --git a/ext/wddx/tests/004.phpt b/ext/wddx/tests/004.phpt
deleted file mode 100644 (file)
index ae5a6b4..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
---TEST--
-wddx session serializer handler (serialize)
---SKIPIF--
-<?php
-       if (!extension_loaded("wddx")) die("skip Wddx module not loaded");
-       if (!extension_loaded('session')) die('skip Session module not enabled');
-
-       // following test code stolen from ext/session/skipif.inc
-       $save_path = ini_get("session.save_path");
-       if ($save_path) {
-               if (!file_exists($save_path)) {
-                       die("skip Session save_path doesn't exist");
-               }
-
-               if ($save_path && !@is_writable($save_path)) {
-                       if (($p = strpos($save_path, ';')) !== false) {
-                               $save_path = substr($save_path, ++$p);
-                       }
-                       if (!@is_writable($save_path)) {
-                               die("skip\n");
-                       }
-               }
-       }
-?>
---INI--
-precision=14
-session.serialize_handler=wddx
-session.use_cookies=0
-session.cache_limiter=
-session.save_handler=files
---FILE--
-<?php
-       class foo {
-               public $bar = "ok";
-               public $invisible = 'you don\'t see me!';
-
-               function method() { $this->yes = "done"; }
-
-               public function __sleep() { return array('bar', 'yes'); }
-       }
-
-       session_start();
-
-       $_SESSION['data'] = array(
-               'test1' => true,
-               'test2' => 'some string',
-               'test3' => 654321,
-               'test4' => array(
-                       'some string',
-                       true,
-                       null
-               ),
-       );
-
-       $_SESSION['class'] = new foo();
-       $_SESSION['class']->method();
-
-       var_dump(session_encode());
-
-       session_destroy();
-?>
---EXPECT--
-string(550) "<wddxPacket version='1.0'><header/><data><struct><var name='data'><struct><var name='test1'><boolean value='true'/></var><var name='test2'><string>some string</string></var><var name='test3'><number>654321</number></var><var name='test4'><array length='3'><string>some string</string><boolean value='true'/><null/></array></var></struct></var><var name='class'><struct><var name='php_class_name'><string>foo</string></var><var name='bar'><string>ok</string></var><var name='yes'><string>done</string></var></struct></var></struct></data></wddxPacket>"
diff --git a/ext/wddx/tests/005.phpt b/ext/wddx/tests/005.phpt
deleted file mode 100644 (file)
index 99e7a9e..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
---TEST--
-wddx session serializer handler (deserialize)
---SKIPIF--
-<?php
-       if (!extension_loaded("wddx")) die("skip Wddx module not loaded");
-       if (!extension_loaded('session')) die('skip Session module not enabled');
-
-       // following test code stolen from ext/session/skipif.inc
-       $save_path = ini_get("session.save_path");
-       if ($save_path) {
-               if (!file_exists($save_path)) {
-                       die("skip Session save_path doesn't exist");
-               }
-
-               if ($save_path && !@is_writable($save_path)) {
-                       if (($p = strpos($save_path, ';')) !== false) {
-                               $save_path = substr($save_path, ++$p);
-                       }
-                       if (!@is_writable($save_path)) {
-                               die("skip\n");
-                       }
-               }
-       }
-?>
---INI--
-precision=14
-session.serialize_handler=wddx
-session.use_cookies=0
-session.cache_limiter=
-session.save_handler=files
---FILE--
-<?php
-       class foo {
-               public $bar = "ok";
-
-               function method() { $this->yes = "done"; }
-       }
-
-       session_start();
-
-       session_decode("<wddxPacket version='1.0'><header/><data><struct><var name='data'><struct><var name='test1'><boolean value='true'/></var><var name='test2'><string>some string</string></var><var name='test3'><number>654321</number></var><var name='test4'><array length='3'><string>some string</string><boolean value='true'/><null/></array></var></struct></var><var name='class'><struct><var name='php_class_name'><string>foo</string></var><var name='bar'><string>ok</string></var><var name='yes'><string>done</string></var></struct></var></struct></data></wddxPacket>");
-
-       var_dump($_SESSION);
-
-       session_destroy();
-?>
---EXPECT--
-array(2) {
-  ["data"]=>
-  array(4) {
-    ["test1"]=>
-    bool(true)
-    ["test2"]=>
-    string(11) "some string"
-    ["test3"]=>
-    int(654321)
-    ["test4"]=>
-    array(3) {
-      [0]=>
-      string(11) "some string"
-      [1]=>
-      bool(true)
-      [2]=>
-      NULL
-    }
-  }
-  ["class"]=>
-  object(foo)#1 (2) {
-    ["bar"]=>
-    string(2) "ok"
-    ["yes"]=>
-    string(4) "done"
-  }
-}
diff --git a/ext/wddx/tests/bug27287.phpt b/ext/wddx/tests/bug27287.phpt
deleted file mode 100644 (file)
index 823aa10..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
---TEST--
-Bug #27287 (segfault with deserializing object data)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-       class foo {
-       }
-       $foo = new foo();
-       $foo->abc = 'def';
-
-       $string = wddx_serialize_value($foo);
-       $bar = wddx_deserialize($string);
-
-       echo "OK\n";
-
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-OK
diff --git a/ext/wddx/tests/bug34306.phpt b/ext/wddx/tests/bug34306.phpt
deleted file mode 100644 (file)
index a7247d5..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-#34306 (wddx_serialize_value() crashes with long array keys)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-$var = array('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa12345678901234567890123456789012345678901234567890ba12345678901234567890123456789012345678901234567890ba12345678901234567890123456789012345678901234567890ba12345678901234567890123456789012345678901234567890b12345678901234567891234567890123123121231211111' => 1);
-$buf = wddx_serialize_value($var, 'name');
-echo "OK\n";
-
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-OK
diff --git a/ext/wddx/tests/bug35410.phpt b/ext/wddx/tests/bug35410.phpt
deleted file mode 100644 (file)
index 2100c8a..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
---TEST--
-#35410 (wddx_deserialize() doesn't handle large ints as keys properly)
---SKIPIF--
-<?php
-       if (!extension_loaded("wddx")) print "skip";
-    if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
-?>
---FILE--
-<?php
-$wddx = <<<WDX
-<wddxpacket version="1.0">
-<header>
-<comment>Content Configuration File</comment>
-</header>
-<data>
-<struct>
-<var name="content_queries">
-<struct>
-<var name="content_113300831086270200">
-<struct>
-<var name="113301888545229100">
-<struct>
-<var name="max">
-<number>10</number>
-</var>
-<var name="cache">
-<number>4</number>
-</var>
-<var name="order">
-<struct>
-<var name="content_113300831086270200">
-<struct>
-<var name="CMS_BUILD">
-<string>desc</string>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</data>
-</wddxpacket>
-WDX;
-
-var_dump(wddx_deserialize($wddx));
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
-  ["content_queries"]=>
-  array(1) {
-    ["content_113300831086270200"]=>
-    array(1) {
-      ["113301888545229100"]=>
-      array(3) {
-        ["max"]=>
-        int(10)
-        ["cache"]=>
-        int(4)
-        ["order"]=>
-        array(1) {
-          ["content_113300831086270200"]=>
-          array(1) {
-            ["CMS_BUILD"]=>
-            string(4) "desc"
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/ext/wddx/tests/bug35410_64bit.phpt b/ext/wddx/tests/bug35410_64bit.phpt
deleted file mode 100644 (file)
index ffe4e08..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
---TEST--
-#35410 (wddx_deserialize() doesn't handle large ints as keys properly)
---SKIPIF--
-<?php
-       if (!extension_loaded("wddx")) print "skip";
-       if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
-?>
---FILE--
-<?php
-$wddx = <<<WDX
-<wddxpacket version="1.0">
-<header>
-<comment>Content Configuration File</comment>
-</header>
-<data>
-<struct>
-<var name="content_queries">
-<struct>
-<var name="content_113300831086270200">
-<struct>
-<var name="113301888545229100">
-<struct>
-<var name="max">
-<number>10</number>
-</var>
-<var name="cache">
-<number>4</number>
-</var>
-<var name="order">
-<struct>
-<var name="content_113300831086270200">
-<struct>
-<var name="CMS_BUILD">
-<string>desc</string>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</var>
-</struct>
-</data>
-</wddxpacket>
-WDX;
-
-var_dump(wddx_deserialize($wddx));
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
-  ["content_queries"]=>
-  array(1) {
-    ["content_113300831086270200"]=>
-    array(1) {
-      [113301888545229100]=>
-      array(3) {
-        ["max"]=>
-        int(10)
-        ["cache"]=>
-        int(4)
-        ["order"]=>
-        array(1) {
-          ["content_113300831086270200"]=>
-          array(1) {
-            ["CMS_BUILD"]=>
-            string(4) "desc"
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/ext/wddx/tests/bug37569.phpt b/ext/wddx/tests/bug37569.phpt
deleted file mode 100644 (file)
index 7099f96..0000000
+++ /dev/null
@@ -1,786 +0,0 @@
---TEST--
-Bug #37569 (WDDX incorrectly encodes high-ascii characters)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---INI--
-error_reporting=E_ALL & ~E_DEPRECATED
---FILE--
-<?php
-for ($i = 65; $i < 256; $i++) {
-       if ($i >= 0xc0) {
-               $v = chr(0xc3) . chr($i - 64);
-       } elseif ($i >= 0x80) {
-               $v = chr(0xc2) . chr($i);
-       } else {
-               $v = chr($i); // make it UTF-8
-       }
-       $ret = wddx_serialize_value($v);
-       echo $ret . "\n";
-       var_dump(bin2hex($v), bin2hex(wddx_deserialize($ret)), $v == wddx_deserialize($ret));
-}
-?>
---EXPECT--
-<wddxPacket version='1.0'><header/><data><string>A</string></data></wddxPacket>
-string(2) "41"
-string(2) "41"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>B</string></data></wddxPacket>
-string(2) "42"
-string(2) "42"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>C</string></data></wddxPacket>
-string(2) "43"
-string(2) "43"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>D</string></data></wddxPacket>
-string(2) "44"
-string(2) "44"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>E</string></data></wddxPacket>
-string(2) "45"
-string(2) "45"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>F</string></data></wddxPacket>
-string(2) "46"
-string(2) "46"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>G</string></data></wddxPacket>
-string(2) "47"
-string(2) "47"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>H</string></data></wddxPacket>
-string(2) "48"
-string(2) "48"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>I</string></data></wddxPacket>
-string(2) "49"
-string(2) "49"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>J</string></data></wddxPacket>
-string(2) "4a"
-string(2) "4a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>K</string></data></wddxPacket>
-string(2) "4b"
-string(2) "4b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>L</string></data></wddxPacket>
-string(2) "4c"
-string(2) "4c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>M</string></data></wddxPacket>
-string(2) "4d"
-string(2) "4d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>N</string></data></wddxPacket>
-string(2) "4e"
-string(2) "4e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>O</string></data></wddxPacket>
-string(2) "4f"
-string(2) "4f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>P</string></data></wddxPacket>
-string(2) "50"
-string(2) "50"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Q</string></data></wddxPacket>
-string(2) "51"
-string(2) "51"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>R</string></data></wddxPacket>
-string(2) "52"
-string(2) "52"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>S</string></data></wddxPacket>
-string(2) "53"
-string(2) "53"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>T</string></data></wddxPacket>
-string(2) "54"
-string(2) "54"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>U</string></data></wddxPacket>
-string(2) "55"
-string(2) "55"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>V</string></data></wddxPacket>
-string(2) "56"
-string(2) "56"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>W</string></data></wddxPacket>
-string(2) "57"
-string(2) "57"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>X</string></data></wddxPacket>
-string(2) "58"
-string(2) "58"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Y</string></data></wddxPacket>
-string(2) "59"
-string(2) "59"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Z</string></data></wddxPacket>
-string(2) "5a"
-string(2) "5a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>[</string></data></wddxPacket>
-string(2) "5b"
-string(2) "5b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\</string></data></wddxPacket>
-string(2) "5c"
-string(2) "5c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>]</string></data></wddxPacket>
-string(2) "5d"
-string(2) "5d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>^</string></data></wddxPacket>
-string(2) "5e"
-string(2) "5e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>_</string></data></wddxPacket>
-string(2) "5f"
-string(2) "5f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>`</string></data></wddxPacket>
-string(2) "60"
-string(2) "60"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>a</string></data></wddxPacket>
-string(2) "61"
-string(2) "61"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>b</string></data></wddxPacket>
-string(2) "62"
-string(2) "62"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>c</string></data></wddxPacket>
-string(2) "63"
-string(2) "63"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>d</string></data></wddxPacket>
-string(2) "64"
-string(2) "64"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>e</string></data></wddxPacket>
-string(2) "65"
-string(2) "65"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>f</string></data></wddxPacket>
-string(2) "66"
-string(2) "66"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>g</string></data></wddxPacket>
-string(2) "67"
-string(2) "67"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>h</string></data></wddxPacket>
-string(2) "68"
-string(2) "68"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>i</string></data></wddxPacket>
-string(2) "69"
-string(2) "69"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>j</string></data></wddxPacket>
-string(2) "6a"
-string(2) "6a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>k</string></data></wddxPacket>
-string(2) "6b"
-string(2) "6b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>l</string></data></wddxPacket>
-string(2) "6c"
-string(2) "6c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>m</string></data></wddxPacket>
-string(2) "6d"
-string(2) "6d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>n</string></data></wddxPacket>
-string(2) "6e"
-string(2) "6e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>o</string></data></wddxPacket>
-string(2) "6f"
-string(2) "6f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>p</string></data></wddxPacket>
-string(2) "70"
-string(2) "70"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>q</string></data></wddxPacket>
-string(2) "71"
-string(2) "71"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>r</string></data></wddxPacket>
-string(2) "72"
-string(2) "72"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>s</string></data></wddxPacket>
-string(2) "73"
-string(2) "73"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>t</string></data></wddxPacket>
-string(2) "74"
-string(2) "74"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>u</string></data></wddxPacket>
-string(2) "75"
-string(2) "75"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>v</string></data></wddxPacket>
-string(2) "76"
-string(2) "76"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>w</string></data></wddxPacket>
-string(2) "77"
-string(2) "77"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>x</string></data></wddxPacket>
-string(2) "78"
-string(2) "78"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>y</string></data></wddxPacket>
-string(2) "79"
-string(2) "79"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>z</string></data></wddxPacket>
-string(2) "7a"
-string(2) "7a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>{</string></data></wddxPacket>
-string(2) "7b"
-string(2) "7b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>|</string></data></wddxPacket>
-string(2) "7c"
-string(2) "7c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>}</string></data></wddxPacket>
-string(2) "7d"
-string(2) "7d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>~</string></data></wddxPacket>
-string(2) "7e"
-string(2) "7e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\7f</string></data></wddxPacket>
-string(2) "7f"
-string(2) "7f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\80</string></data></wddxPacket>
-string(4) "c280"
-string(4) "c280"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\81</string></data></wddxPacket>
-string(4) "c281"
-string(4) "c281"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\82</string></data></wddxPacket>
-string(4) "c282"
-string(4) "c282"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\83</string></data></wddxPacket>
-string(4) "c283"
-string(4) "c283"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\84</string></data></wddxPacket>
-string(4) "c284"
-string(4) "c284"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\85</string></data></wddxPacket>
-string(4) "c285"
-string(4) "c285"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\86</string></data></wddxPacket>
-string(4) "c286"
-string(4) "c286"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\87</string></data></wddxPacket>
-string(4) "c287"
-string(4) "c287"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\88</string></data></wddxPacket>
-string(4) "c288"
-string(4) "c288"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\89</string></data></wddxPacket>
-string(4) "c289"
-string(4) "c289"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\8a</string></data></wddxPacket>
-string(4) "c28a"
-string(4) "c28a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\8b</string></data></wddxPacket>
-string(4) "c28b"
-string(4) "c28b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\8c</string></data></wddxPacket>
-string(4) "c28c"
-string(4) "c28c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\8d</string></data></wddxPacket>
-string(4) "c28d"
-string(4) "c28d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\8e</string></data></wddxPacket>
-string(4) "c28e"
-string(4) "c28e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\8f</string></data></wddxPacket>
-string(4) "c28f"
-string(4) "c28f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\90</string></data></wddxPacket>
-string(4) "c290"
-string(4) "c290"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\91</string></data></wddxPacket>
-string(4) "c291"
-string(4) "c291"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\92</string></data></wddxPacket>
-string(4) "c292"
-string(4) "c292"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\93</string></data></wddxPacket>
-string(4) "c293"
-string(4) "c293"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\94</string></data></wddxPacket>
-string(4) "c294"
-string(4) "c294"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\95</string></data></wddxPacket>
-string(4) "c295"
-string(4) "c295"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\96</string></data></wddxPacket>
-string(4) "c296"
-string(4) "c296"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\97</string></data></wddxPacket>
-string(4) "c297"
-string(4) "c297"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\98</string></data></wddxPacket>
-string(4) "c298"
-string(4) "c298"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\99</string></data></wddxPacket>
-string(4) "c299"
-string(4) "c299"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\9a</string></data></wddxPacket>
-string(4) "c29a"
-string(4) "c29a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\9b</string></data></wddxPacket>
-string(4) "c29b"
-string(4) "c29b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\9c</string></data></wddxPacket>
-string(4) "c29c"
-string(4) "c29c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\9d</string></data></wddxPacket>
-string(4) "c29d"
-string(4) "c29d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\9e</string></data></wddxPacket>
-string(4) "c29e"
-string(4) "c29e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>\9f</string></data></wddxPacket>
-string(4) "c29f"
-string(4) "c29f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string> </string></data></wddxPacket>
-string(4) "c2a0"
-string(4) "c2a0"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¡</string></data></wddxPacket>
-string(4) "c2a1"
-string(4) "c2a1"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¢</string></data></wddxPacket>
-string(4) "c2a2"
-string(4) "c2a2"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>£</string></data></wddxPacket>
-string(4) "c2a3"
-string(4) "c2a3"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¤</string></data></wddxPacket>
-string(4) "c2a4"
-string(4) "c2a4"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¥</string></data></wddxPacket>
-string(4) "c2a5"
-string(4) "c2a5"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¦</string></data></wddxPacket>
-string(4) "c2a6"
-string(4) "c2a6"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>§</string></data></wddxPacket>
-string(4) "c2a7"
-string(4) "c2a7"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¨</string></data></wddxPacket>
-string(4) "c2a8"
-string(4) "c2a8"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>©</string></data></wddxPacket>
-string(4) "c2a9"
-string(4) "c2a9"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ª</string></data></wddxPacket>
-string(4) "c2aa"
-string(4) "c2aa"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>«</string></data></wddxPacket>
-string(4) "c2ab"
-string(4) "c2ab"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¬</string></data></wddxPacket>
-string(4) "c2ac"
-string(4) "c2ac"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>­</string></data></wddxPacket>
-string(4) "c2ad"
-string(4) "c2ad"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>®</string></data></wddxPacket>
-string(4) "c2ae"
-string(4) "c2ae"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¯</string></data></wddxPacket>
-string(4) "c2af"
-string(4) "c2af"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>°</string></data></wddxPacket>
-string(4) "c2b0"
-string(4) "c2b0"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>±</string></data></wddxPacket>
-string(4) "c2b1"
-string(4) "c2b1"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>²</string></data></wddxPacket>
-string(4) "c2b2"
-string(4) "c2b2"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>³</string></data></wddxPacket>
-string(4) "c2b3"
-string(4) "c2b3"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>´</string></data></wddxPacket>
-string(4) "c2b4"
-string(4) "c2b4"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>µ</string></data></wddxPacket>
-string(4) "c2b5"
-string(4) "c2b5"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¶</string></data></wddxPacket>
-string(4) "c2b6"
-string(4) "c2b6"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>·</string></data></wddxPacket>
-string(4) "c2b7"
-string(4) "c2b7"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¸</string></data></wddxPacket>
-string(4) "c2b8"
-string(4) "c2b8"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¹</string></data></wddxPacket>
-string(4) "c2b9"
-string(4) "c2b9"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>º</string></data></wddxPacket>
-string(4) "c2ba"
-string(4) "c2ba"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>»</string></data></wddxPacket>
-string(4) "c2bb"
-string(4) "c2bb"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¼</string></data></wddxPacket>
-string(4) "c2bc"
-string(4) "c2bc"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>½</string></data></wddxPacket>
-string(4) "c2bd"
-string(4) "c2bd"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¾</string></data></wddxPacket>
-string(4) "c2be"
-string(4) "c2be"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>¿</string></data></wddxPacket>
-string(4) "c2bf"
-string(4) "c2bf"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>À</string></data></wddxPacket>
-string(4) "c380"
-string(4) "c380"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Á</string></data></wddxPacket>
-string(4) "c381"
-string(4) "c381"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Â</string></data></wddxPacket>
-string(4) "c382"
-string(4) "c382"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ã</string></data></wddxPacket>
-string(4) "c383"
-string(4) "c383"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ä</string></data></wddxPacket>
-string(4) "c384"
-string(4) "c384"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Å</string></data></wddxPacket>
-string(4) "c385"
-string(4) "c385"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Æ</string></data></wddxPacket>
-string(4) "c386"
-string(4) "c386"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ç</string></data></wddxPacket>
-string(4) "c387"
-string(4) "c387"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>È</string></data></wddxPacket>
-string(4) "c388"
-string(4) "c388"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>É</string></data></wddxPacket>
-string(4) "c389"
-string(4) "c389"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ê</string></data></wddxPacket>
-string(4) "c38a"
-string(4) "c38a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ë</string></data></wddxPacket>
-string(4) "c38b"
-string(4) "c38b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ì</string></data></wddxPacket>
-string(4) "c38c"
-string(4) "c38c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Í</string></data></wddxPacket>
-string(4) "c38d"
-string(4) "c38d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Î</string></data></wddxPacket>
-string(4) "c38e"
-string(4) "c38e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ï</string></data></wddxPacket>
-string(4) "c38f"
-string(4) "c38f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ð</string></data></wddxPacket>
-string(4) "c390"
-string(4) "c390"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ñ</string></data></wddxPacket>
-string(4) "c391"
-string(4) "c391"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ò</string></data></wddxPacket>
-string(4) "c392"
-string(4) "c392"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ó</string></data></wddxPacket>
-string(4) "c393"
-string(4) "c393"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ô</string></data></wddxPacket>
-string(4) "c394"
-string(4) "c394"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Õ</string></data></wddxPacket>
-string(4) "c395"
-string(4) "c395"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ö</string></data></wddxPacket>
-string(4) "c396"
-string(4) "c396"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>×</string></data></wddxPacket>
-string(4) "c397"
-string(4) "c397"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ø</string></data></wddxPacket>
-string(4) "c398"
-string(4) "c398"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ù</string></data></wddxPacket>
-string(4) "c399"
-string(4) "c399"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ú</string></data></wddxPacket>
-string(4) "c39a"
-string(4) "c39a"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Û</string></data></wddxPacket>
-string(4) "c39b"
-string(4) "c39b"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ü</string></data></wddxPacket>
-string(4) "c39c"
-string(4) "c39c"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Ý</string></data></wddxPacket>
-string(4) "c39d"
-string(4) "c39d"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>Þ</string></data></wddxPacket>
-string(4) "c39e"
-string(4) "c39e"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ß</string></data></wddxPacket>
-string(4) "c39f"
-string(4) "c39f"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>à</string></data></wddxPacket>
-string(4) "c3a0"
-string(4) "c3a0"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>á</string></data></wddxPacket>
-string(4) "c3a1"
-string(4) "c3a1"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>â</string></data></wddxPacket>
-string(4) "c3a2"
-string(4) "c3a2"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ã</string></data></wddxPacket>
-string(4) "c3a3"
-string(4) "c3a3"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ä</string></data></wddxPacket>
-string(4) "c3a4"
-string(4) "c3a4"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>å</string></data></wddxPacket>
-string(4) "c3a5"
-string(4) "c3a5"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>æ</string></data></wddxPacket>
-string(4) "c3a6"
-string(4) "c3a6"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ç</string></data></wddxPacket>
-string(4) "c3a7"
-string(4) "c3a7"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>è</string></data></wddxPacket>
-string(4) "c3a8"
-string(4) "c3a8"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>é</string></data></wddxPacket>
-string(4) "c3a9"
-string(4) "c3a9"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ê</string></data></wddxPacket>
-string(4) "c3aa"
-string(4) "c3aa"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ë</string></data></wddxPacket>
-string(4) "c3ab"
-string(4) "c3ab"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ì</string></data></wddxPacket>
-string(4) "c3ac"
-string(4) "c3ac"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>í</string></data></wddxPacket>
-string(4) "c3ad"
-string(4) "c3ad"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>î</string></data></wddxPacket>
-string(4) "c3ae"
-string(4) "c3ae"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ï</string></data></wddxPacket>
-string(4) "c3af"
-string(4) "c3af"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ð</string></data></wddxPacket>
-string(4) "c3b0"
-string(4) "c3b0"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ñ</string></data></wddxPacket>
-string(4) "c3b1"
-string(4) "c3b1"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ò</string></data></wddxPacket>
-string(4) "c3b2"
-string(4) "c3b2"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ó</string></data></wddxPacket>
-string(4) "c3b3"
-string(4) "c3b3"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ô</string></data></wddxPacket>
-string(4) "c3b4"
-string(4) "c3b4"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>õ</string></data></wddxPacket>
-string(4) "c3b5"
-string(4) "c3b5"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ö</string></data></wddxPacket>
-string(4) "c3b6"
-string(4) "c3b6"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>÷</string></data></wddxPacket>
-string(4) "c3b7"
-string(4) "c3b7"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ø</string></data></wddxPacket>
-string(4) "c3b8"
-string(4) "c3b8"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ù</string></data></wddxPacket>
-string(4) "c3b9"
-string(4) "c3b9"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ú</string></data></wddxPacket>
-string(4) "c3ba"
-string(4) "c3ba"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>û</string></data></wddxPacket>
-string(4) "c3bb"
-string(4) "c3bb"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ü</string></data></wddxPacket>
-string(4) "c3bc"
-string(4) "c3bc"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ý</string></data></wddxPacket>
-string(4) "c3bd"
-string(4) "c3bd"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>þ</string></data></wddxPacket>
-string(4) "c3be"
-string(4) "c3be"
-bool(true)
-<wddxPacket version='1.0'><header/><data><string>ÿ</string></data></wddxPacket>
-string(4) "c3bf"
-string(4) "c3bf"
-bool(true)
diff --git a/ext/wddx/tests/bug37587.phpt b/ext/wddx/tests/bug37587.phpt
deleted file mode 100644 (file)
index e91e451..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
---TEST--
-Bug #37587 (var without attribute causes segfault)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-var_dump(wddx_deserialize(<<<EOF
-<wddxPacket version='1.0'>
-<header/>
-<data>
-  <array length='1'>
-    <var>
-      <struct>
-        <var name='test'><string>Hello World</string></var>
-      </struct>
-    </var>
-  </array>
-</data>
-</wddxPacket>
-EOF
-));
-
-?>
-===DONE===
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
-  [0]=>
-  array(1) {
-    ["test"]=>
-    string(11) "Hello World"
-  }
-}
-===DONE===
diff --git a/ext/wddx/tests/bug41283.phpt b/ext/wddx/tests/bug41283.phpt
deleted file mode 100644 (file)
index 4a1f92b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
---TEST--
-Bug #41283 (Bug with serializing array key that are doubles or floats)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-$data = array(
-  'somearray' => array('1.1' => 'One 1','1.2' => 'One 2', '1.0' => 'Three')
-);
-
-var_dump(wddx_deserialize(wddx_serialize_vars('data')));
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_vars() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
-  ["data"]=>
-  array(1) {
-    ["somearray"]=>
-    array(3) {
-      ["1.1"]=>
-      string(5) "One 1"
-      ["1.2"]=>
-      string(5) "One 2"
-      ["1.0"]=>
-      string(5) "Three"
-    }
-  }
-}
diff --git a/ext/wddx/tests/bug41527.phpt b/ext/wddx/tests/bug41527.phpt
deleted file mode 100644 (file)
index 329f732..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-Bug #41527 (WDDX deserialize numeric string array keys)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-$data = array('01' => 'Zero', '+1' => 'Plus sign', ' 1' => 'Space');
-
-var_dump(wddx_deserialize(wddx_serialize_vars('data')));
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_vars() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
-  ["data"]=>
-  array(3) {
-    ["01"]=>
-    string(4) "Zero"
-    ["+1"]=>
-    string(9) "Plus sign"
-    [" 1"]=>
-    string(5) "Space"
-  }
-}
diff --git a/ext/wddx/tests/bug45901.phpt b/ext/wddx/tests/bug45901.phpt
deleted file mode 100644 (file)
index c89b230..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-Bug #45901 (wddx_serialize_value crash with SimpleXMLElement object)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-if (!extension_loaded("simplexml")) print "skip SimpleXML not present";
-?>
---FILE--
-<?php
-
-$xml = new SimpleXMLElement('<data></data>');
-$xml->addChild('test');
-echo wddx_serialize_value($xml, 'Variables') . "\n";
-echo "DONE";
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %sbug45901.php on line %d
-
-Warning: wddx_serialize_value(): Class SimpleXMLElement can not be serialized in %sbug45901.php on line %d
-<wddxPacket version='1.0'><header><comment>Variables</comment></header><data></data></wddxPacket>
-DONE
diff --git a/ext/wddx/tests/bug48562.phpt b/ext/wddx/tests/bug48562.phpt
deleted file mode 100644 (file)
index 10a2b65..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
---TEST--
-Bug #48562 (Reference recursion causes segfault when used in wddx_serialize_vars())
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
-    die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$foo = 'bar';
-
-$a['x'] = 'foo';
-$a['x'] = &$a;
-
-var_dump(wddx_serialize_vars($a));
-
-// replace $a - the recursion detection seems to be causing $a to be not an array here, maybe its internally a pointer
-// replacing $a with a new array() allows this test to still check for 2 things
-//  1. recursion detection in &$a;
-//  2. recursion detection in adding $a to itself and then serializing $a
-// the one thing the test won't check is using $a as an array after doing &$a; which isn't really a wddx problem.
-$a = array();
-$a['x'] = 'foo';
-$a['x'] = $a;
-
-var_dump(wddx_serialize_vars($a));
-
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_vars() is deprecated in %s on line %d
-
-Warning: wddx_serialize_vars(): recursion detected in %s on line %d
-string(78) "<wddxPacket version='1.0'><header/><data><struct></struct></data></wddxPacket>"
-
-Deprecated: Function wddx_serialize_vars() is deprecated in %s on line %d
-string(120) "<wddxPacket version='1.0'><header/><data><struct><var name='foo'><string>bar</string></var></struct></data></wddxPacket>"
diff --git a/ext/wddx/tests/bug52468.phpt b/ext/wddx/tests/bug52468.phpt
deleted file mode 100644 (file)
index 1fd3df9..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
---TEST--
-Bug #52468 (wddx_deserialize corrupts integer field value when left empty)
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
-    die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$message = "<wddxPacket version='1.0'><header><comment>my_command</comment></header><data><struct><var name='handle'><number></number></var></struct></data></wddxPacket>";
-
-print_r(wddx_deserialize($message));
-print_r(wddx_deserialize($message));
-
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-Array
-(
-    [handle] => 0
-)
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-Array
-(
-    [handle] => 0
-)
diff --git a/ext/wddx/tests/bug68996.phpt b/ext/wddx/tests/bug68996.phpt
deleted file mode 100644 (file)
index cba4b3f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-Bug #68996 (Invalid free of CG(interned_empty_string))
---SKIPIF--
-<?php
-if (getenv("USE_ZEND_ALLOC") !== "0")
-    print "skip Need Zend MM disabled";
-?>
---FILE--
-<?php
-echo wddx_serialize_value("\xfc\x63") . "\n";
-echo wddx_serialize_value([ "\xfc\x63" => "foo" ]) . "\n";
-?>
---EXPECT--
-<wddxPacket version='1.0'><header/><data><string></string></data></wddxPacket>
-<wddxPacket version='1.0'><header/><data><struct><var name=''><string>foo</string></var></struct></data></wddxPacket>
diff --git a/ext/wddx/tests/bug70661.phpt b/ext/wddx/tests/bug70661.phpt
deleted file mode 100644 (file)
index 60683d5..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
---TEST--
-Bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-?>
---FILE--
-<?php
-$fakezval = ptr2str(1122334455);
-$fakezval .= ptr2str(0);
-$fakezval .= "\x00\x00\x00\x00";
-$fakezval .= "\x01";
-$fakezval .= "\x00";
-$fakezval .= "\x00\x00";
-
-$x = <<<EOT
-<?xml version='1.0'?>
-<wddxPacket version='1.0'>
-<header/>
-       <data>
-               <struct>
-                       <recordset rowCount='1' fieldNames='ryat'>
-                               <field name='ryat'>
-                                       <var name='php_class_name'>
-                                               <string>stdClass</string>
-                                       </var>
-                                       <null/>
-                               </field>
-                       </recordset>
-               </struct>       
-       </data>
-</wddxPacket>
-EOT;
-
-$y = wddx_deserialize($x);
-
-for ($i = 0; $i < 5; $i++) {
-       $v[$i] = $fakezval.$i;
-}
-
-var_dump($y);
-
-function ptr2str($ptr)
-{
-       $out = '';
-
-       for ($i = 0; $i < 8; $i++) {
-               $out .= chr($ptr & 0xff);
-               $ptr >>= 8;
-       }
-
-       return $out;
-}
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
-  [0]=>
-  array(1) {
-    ["ryat"]=>
-    array(2) {
-      ["php_class_name"]=>
-      string(8) "stdClass"
-      [0]=>
-      NULL
-    }
-  }
-}
-DONE
diff --git a/ext/wddx/tests/bug70741.phpt b/ext/wddx/tests/bug70741.phpt
deleted file mode 100644 (file)
index 061fa65..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-Bug #70741 (Session WDDX Packet Deserialization Type Confusion Vulnerability)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-if (!extension_loaded("session")) print "skip session extension not available";
-?>
---FILE--
-<?php
-ini_set('session.serialize_handler', 'wddx');
-session_start();
-
-$hashtable = str_repeat('A', 66);
-$wddx = "<?xml version='1.0'?>
-<wddxPacket version='1.0'>
-<header/>
-       <data>
-               <string>$hashtable</string>
-       </data>
-</wddxPacket>";
-session_decode($wddx);
-?>
-DONE
---EXPECTF--
-Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s on line %d
-DONE
diff --git a/ext/wddx/tests/bug71335.phpt b/ext/wddx/tests/bug71335.phpt
deleted file mode 100644 (file)
index 9fdbb25..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
---TEST--
-Bug #71335 (Type Confusion in WDDX Packet Deserialization)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-?>
---FILE--
-<?php
-$x = "<?xml version='1.0'?>
-<wddxPacket version='1.0'>
-<header/>
-       <data>
-               <struct>
-                       <var name='php_class_name'>
-                               <string>stdClass</string>
-                       </var>
-                       <var name='php_class_name'>
-                               <string>stdClass</string>
-                       </var>
-               </struct>
-       </data>
-</wddxPacket>";
-
-$d = wddx_deserialize($x);
-var_dump($d);
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-object(stdClass)#%d (1) {
-  ["php_class_name"]=>
-  string(8) "stdClass"
-}
-DONE
diff --git a/ext/wddx/tests/bug71587.phpt b/ext/wddx/tests/bug71587.phpt
deleted file mode 100644 (file)
index bb7c00b..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
---TEST--
-Bug #71587 (Use-After-Free / Double-Free in WDDX Deserialize)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-?>
---FILE--
-<?php
-
-$xml = <<<EOF
-<?xml version='1.0' ?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-    <array>
-         <var name='ML'></var>
-            <string>manhluat</string>
-         <var name='ML2'></var>
-               <boolean value='a'/>
-         <boolean value='true'/>
-    </array>
-</wddxPacket>
-EOF;
-
-$wddx = wddx_deserialize($xml);
-var_dump($wddx);
-// Print mem leak
-foreach($wddx as $k=>$v)
-       printf("Key: %s\nValue: %s\n",bin2hex($k),bin2hex($v));
-
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(2) {
-  [0]=>
-  string(8) "manhluat"
-  [1]=>
-  bool(true)
-}
-Key: 30
-Value: 6d616e686c756174
-Key: 31
-Value: 31
-DONE
diff --git a/ext/wddx/tests/bug72142.phpt b/ext/wddx/tests/bug72142.phpt
deleted file mode 100644 (file)
index 955af38..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-Bug #72142: WDDX Packet Injection Vulnerability in wddx_serialize_value()
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-$wddx = wddx_serialize_value('', '</comment></header><data><struct><var name="php_class_name"><string>stdClass</string></var></struct></data></wddxPacket>');
-var_dump($wddx);
-var_dump(wddx_deserialize($wddx));
-
-?>
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-string(301) "<wddxPacket version='1.0'><header><comment>&lt;/comment&gt;&lt;/header&gt;&lt;data&gt;&lt;struct&gt;&lt;var name=&quot;php_class_name&quot;&gt;&lt;string&gt;stdClass&lt;/string&gt;&lt;/var&gt;&lt;/struct&gt;&lt;/data&gt;&lt;/wddxPacket&gt;</comment></header><data><string></string></data></wddxPacket>"
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-string(0) ""
diff --git a/ext/wddx/tests/bug72340.phpt b/ext/wddx/tests/bug72340.phpt
deleted file mode 100644 (file)
index 7597a2f..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-Bug #72340: Double Free Courruption in wddx_deserialize
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-?>
---FILE--
-<?php
-$xml = <<<EOF
-<?xml version='1.0' ?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-       <array><var name="XXXXXXXX"><boolean value="none">TEST</boolean></var>
-               <var name="YYYYYYYY"><var name="ZZZZZZZZ"><var name="EZEZEZEZ">
-               </var></var></var>
-       </array>
-</wddxPacket>
-EOF;
-$array = wddx_deserialize($xml);
-var_dump($array);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(0) {
-}
diff --git a/ext/wddx/tests/bug72564.phpt b/ext/wddx/tests/bug72564.phpt
deleted file mode 100644 (file)
index a1037a8..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
---TEST--
-Bug #72564: wddx deserialization of boolean
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-       foreach([true, false, NULL] as $v) {
-               $x =  wddx_serialize_value($v);
-               var_dump($x, wddx_deserialize($x));
-       }
-?>
-Done
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-string(84) "<wddxPacket version='1.0'><header/><data><boolean value='true'/></data></wddxPacket>"
-bool(true)
-
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-string(85) "<wddxPacket version='1.0'><header/><data><boolean value='false'/></data></wddxPacket>"
-bool(false)
-
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-string(68) "<wddxPacket version='1.0'><header/><data><null/></data></wddxPacket>"
-NULL
-Done
diff --git a/ext/wddx/tests/bug72749.phpt b/ext/wddx/tests/bug72749.phpt
deleted file mode 100644 (file)
index 49a7af9..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
---TEST--
-Bug #72749: wddx_deserialize allows illegal memory access
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
-    die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-$xml = <<<XML
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-<header/>
-        <data>
-                <struct>
-                     <var name='aDateTime3'>
-                         <dateTime>2\r2004-09-10T05:52:49+00</dateTime>
-                     </var>
-                 </struct>
-        </data>
-</wddxPacket>
-XML;
-
-$array = wddx_deserialize($xml);
-var_dump($array);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
-  ["aDateTime3"]=>
-  string(24) "2
-2004-09-10T05:52:49+00"
-}
diff --git a/ext/wddx/tests/bug72750.phpt b/ext/wddx/tests/bug72750.phpt
deleted file mode 100644 (file)
index a789900..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
---TEST--
-Bug #72750: wddx_deserialize null dereference
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
-    die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$xml = <<< XML
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-<header/>
-        <data>
-                <struct>
-                     <var name='aBinary'>
-                         <binary length='11'>\\tYmluYXJRhdGE=</binary>
-                     </var>
-                 </struct>
-        </data>
-</wddxPacket>
-XML;
-
-$array = wddx_deserialize($xml);
-var_dump($array);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
-  ["aBinary"]=>
-  string(9) "µ\89¥¹\85ÉF\17F"
-}
diff --git a/ext/wddx/tests/bug72790.phpt b/ext/wddx/tests/bug72790.phpt
deleted file mode 100644 (file)
index 335cee0..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
---TEST--
-Bug #72790: wddx_deserialize null dereference with invalid xml
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
-    die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$xml = <<< XML
-<?xml version='1.0' ?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-        |array>
-                <var name="XXXX">
-                        <boolean value="this">
-                        </boolean>
-                </var>
-                <var name="YYYY">
-                        <var name="UUUU">
-                                <var name="EZEZ">
-                                </var>
-                        </var>
-                </var>
-        </array>
-</wddxPacket>
-XML;
-
-$array = wddx_deserialize($xml);
-var_dump($array);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-NULL
diff --git a/ext/wddx/tests/bug72799.phpt b/ext/wddx/tests/bug72799.phpt
deleted file mode 100644 (file)
index a5fea7a..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
---TEST--
-Bug #72799: wddx_deserialize null dereference in php_wddx_pop_element
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
-    die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$xml = <<<XML
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version="1.0">
-    <var name="XXXX">
-        <boolean value="1">
-            <dateTime>1998-06-12T04:32:12+00</dateTime>
-        </boolean>
-    </var>
-</wddxPacket>
-XML;
-
-$array = wddx_deserialize($xml);
-var_dump($array);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-NULL
diff --git a/ext/wddx/tests/bug72860.phpt b/ext/wddx/tests/bug72860.phpt
deleted file mode 100644 (file)
index 831811b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---TEST--
-Bug #72860: wddx_deserialize use-after-free
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
-    die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$xml=<<<XML
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-       <recordset fieldNames='F'>
-               <field name='F'>
-       </recordset>
-</wddxPacket>
-XML;
-
-var_dump(wddx_deserialize($xml));
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-NULL
-DONE
diff --git a/ext/wddx/tests/bug73065.phpt b/ext/wddx/tests/bug73065.phpt
deleted file mode 100644 (file)
index 5481b88..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
---TEST--
-Bug #73065: Out-Of-Bounds Read in php_wddx_push_element of wddx.c
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) {
-    die('skip. wddx not available');
-}
-?>
---FILE--
-<?php
-
-$xml1 = <<<XML
-<?xml version='1.0' ?>
-    <!DOCTYPE et SYSTEM 'w'>
-    <wddxPacket ven='1.0'>
-        <array>
-            <var Name="name">
-                <boolean value="keliu"></boolean>
-            </var>
-            <var name="1111">
-                <var name="2222">
-                    <var name="3333"></var>
-                </var>
-            </var>
-        </array>
-    </wddxPacket>
-XML;
-
-$xml2 = <<<XML
-<?xml version='1.0' ?>
-    <!DOCTYPE et SYSTEM 'w'>
-    <wddxPacket ven='1.0'>
-        <array>
-            <char Name="code">
-                <boolean value="keliu"></boolean>
-            </char>
-        </array>
-    </wddxPacket>
-XML;
-
-$xml3 = <<<XML
-<?xml version='1.0' ?>
-    <!DOCTYPE et SYSTEM 'w'>
-    <wddxPacket ven='1.0'>
-        <array>
-            <boolean Name="value">
-                <boolean value="keliu"></boolean>
-            </boolean>
-        </array>
-    </wddxPacket>
-XML;
-
-$xml4 = <<<XML
-<?xml version='1.0' ?>
-    <!DOCTYPE et SYSTEM 'w'>
-    <wddxPacket ven='1.0'>
-        <array>
-            <recordset Name="fieldNames">
-                <boolean value="keliu"></boolean>
-            </recordset>
-        </array>
-    </wddxPacket>
-XML;
-
-$xml5 = <<<XML
-<?xml version='1.0' ?>
-    <!DOCTYPE et SYSTEM 'w'>
-    <wddxPacket ven='1.0'>
-        <array>
-            <field Name="name">
-                <boolean value="keliu"></boolean>
-            </field>
-        </array>
-    </wddxPacket>
-XML;
-
-for($i=1;$i<=5;$i++) {
-       $xmlvar = "xml$i";
-    $array = wddx_deserialize($$xmlvar);
-    var_dump($array);
-}
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(0) {
-}
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(0) {
-}
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(0) {
-}
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
-  [0]=>
-  array(0) {
-  }
-}
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(0) {
-}
-DONE
diff --git a/ext/wddx/tests/bug73173.phpt b/ext/wddx/tests/bug73173.phpt
deleted file mode 100644 (file)
index d9e6644..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---TEST--
-Bug #73173: huge memleak when wddx_unserialize
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-$xml=<<<XML
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket>
-<var name="
-XML;
-
-$xml .= str_repeat('F',0x80000);
-
-$xml .= <<<XML
-">
-</wddxPacket>
-XML;
-var_dump(wddx_deserialize($xml));
-
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-NULL
diff --git a/ext/wddx/tests/bug73331.phpt b/ext/wddx/tests/bug73331.phpt
deleted file mode 100644 (file)
index 3ee2e59..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---TEST--
-Bug #73331 (NULL Pointer Dereference in WDDX Packet Deserialization with PDORow)
---SKIPIF--
-<?php if (!extension_loaded("wddx") || !extension_loaded("pdo")) print "skip"; ?>
---FILE--
-<?php
-
-$wddx = "<wddxPacket version='1.0'><header/><data><struct><var name='php_class_name'><string>PDORow</string></var></struct></data></wddxPacket>";
-var_dump(wddx_deserialize($wddx));
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-
-Warning: wddx_deserialize(): Class pdorow can not be unserialized in %s73331.php on line %d
-NULL
diff --git a/ext/wddx/tests/bug73631.phpt b/ext/wddx/tests/bug73631.phpt
deleted file mode 100644 (file)
index 061932e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---TEST--
-Bug #73631 (Memory leak due to invalid wddx stack processing)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
----XFAIL--
-Still has memory leaks in debug build.
---FILE--
-<?php
-$xml = <<<EOF
-<?xml version="1.0" ?>
-<wddxPacket version="1.0">
-<number>1234</number>
-<binary><boolean/></binary>
-</wddxPacket>
-EOF;
-$wddx = wddx_deserialize($xml);
-var_dump($wddx);
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-int(1234)
diff --git a/ext/wddx/tests/bug73793.phpt b/ext/wddx/tests/bug73793.phpt
deleted file mode 100644 (file)
index dad2f35..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---TEST--
-Bug #73793 (WDDX uses wrong decimal separator)
---SKIPIF--
-<?php
-if (!extension_loaded('wddx')) print 'skip wddx extension not available';
-if (setlocale(LC_NUMERIC, ['de_DE', 'de_DE.UTF-8', 'de-DE']) === false) {
-    print 'skip German locale not available';
-}
-?>
---FILE--
-<?php
-setlocale(LC_NUMERIC , ['de_DE', 'de_DE.UTF-8', 'de-DE']);
-var_dump(wddx_serialize_value(['foo' => 5.1]));
-?>
-===DONE===
---EXPECTF--
-Deprecated: Function wddx_serialize_value() is deprecated in %s on line %d
-string(120) "<wddxPacket version='1.0'><header/><data><struct><var name='foo'><number>5.1</number></var></struct></data></wddxPacket>"
-===DONE===
diff --git a/ext/wddx/tests/bug73831.phpt b/ext/wddx/tests/bug73831.phpt
deleted file mode 100644 (file)
index dc25f3c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---TEST--
-Bug #73831 (NULL Pointer Dereference while unserialize php object)
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-$xml = <<<EOF
-<?xml version="1.0" ?>
-<wddxPacket version="1.0">
-       <struct>
-               <var name="php_class_name">
-                       <string>Throwable</string>
-                </var>
-        </struct>
-</wddxPacket>
-EOF;
-try {
-       $wddx = wddx_deserialize($xml);
-} catch(Error $e) { echo $e->getMessage(); }
-?>
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-
-Warning: wddx_deserialize(): Class throwable can not be instantiated in %sbug73831.php on line %d
-Cannot instantiate interface Throwable
diff --git a/ext/wddx/tests/bug74145.phpt b/ext/wddx/tests/bug74145.phpt
deleted file mode 100644 (file)
index 1daa189..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---TEST--
-Bug #74145 (wddx parsing empty boolean tag leads to SIGSEGV)
---SKIPIF--
-<?php
-if (!extension_loaded("wddx")) print "skip";
-?>
---FILE--
-<?php
-$data = file_get_contents(__DIR__ . '/bug74145.xml');
-$wddx = wddx_deserialize($data);
-var_dump($wddx);
-?>
-DONE
---EXPECTF--
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-NULL
-DONE
diff --git a/ext/wddx/tests/bug74145.xml b/ext/wddx/tests/bug74145.xml
deleted file mode 100644 (file)
index e5d35fb..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version='1.0' ?>
-    <!DOCTYPE et SYSTEM 'w'>
-    <wddxPacket ven='1.0'>
-        <array>
-            <var Name="name">
-                <boolean \ 2></boolean>
-            </var>
-        </array>
-    </wddxPacket>
diff --git a/ext/wddx/tests/bug75055.phpt b/ext/wddx/tests/bug75055.phpt
deleted file mode 100644 (file)
index cd84c9b..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---TEST--
-Bug #75055 Out-Of-Bounds Read in timelib_meridian()
---SKIPIF--
-<?php if (!extension_loaded("wddx")) print "skip"; ?>
---FILE--
-<?php
-
-$file_str = __DIR__ . "/bug75055.wddx";
-
-$wddx_str = file_get_contents($file_str);
-print strlen($wddx_str) . " bytes read.\n";
-
-var_dump(wddx_deserialize($wddx_str));
-?>
---EXPECTF--
-323 bytes read.
-
-Deprecated: Function wddx_deserialize() is deprecated in %s on line %d
-array(1) {
-  ["aDateTime"]=>
-  string(12) "frONt of 0 0"
-}
diff --git a/ext/wddx/tests/bug75055.wddx b/ext/wddx/tests/bug75055.wddx
deleted file mode 100644 (file)
index 6493352..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version='1.0'?>\r
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>\r
-<wddxPacket version='1.0'>\r
-<header/>\r
-       <data>\r
-               <struct>\r
-                    <var name='aDateTime'>\r
-                         <dateTime>frONt of 0 0</dateTime>\r
-                     </var>\r
-                </struct>\r
-       </data>\r
-</wddxPacket>\r
-\r
diff --git a/ext/wddx/tests/wddx.xml b/ext/wddx/tests/wddx.xml
deleted file mode 100644 (file)
index 0085709..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-<wddxPacket version='1.0'>
-<header/>
-       <data>
-               <struct>
-                     <var name='aNull'>
-                         <null/>
-                     </var>
-                     <var name='aString'>
-                         <string>a string</string>
-                     </var>
-                     <var name='aNumber'>
-                         <number>-12.456</number>
-                     </var>
-                     <var name='aDateTime'>
-                         <dateTime>1998-06-12T04:32:12+00</dateTime>
-                     </var>
-                     <var name='aDateTime2'>
-                         <dateTime>1980-06-12T04:32:12+00</dateTime>
-                     </var>
-                     <var name='aDateTime3'>
-                         <dateTime>2040-06-12T04:32:12+00</dateTime>
-                     </var>
-                     <var name='aBoolean'>
-                         <boolean value='true'/>
-                     </var>
-                     <var name='anArray'>
-                         <array length='2'>
-                             <number>10</number>
-                             <string>second element</string>
-                        </array>
-                     </var>
-                     <var name='aBinary'>
-                         <binary length='11'>YmluYXJ5IGRhdGE=</binary>
-                     </var>
-                     <var name='anObject'>
-                         <struct>
-                             <var name='s'>
-                                 <string>a string</string>
-                             </var>
-                             <var name='n'>
-                                 <number>-12.456</number>
-                             </var>
-                         </struct>
-                     </var>
-                    <var name='aRecordset'>
-                         <recordset rowCount='2' fieldNames='NAME,AGE'>
-                               <field name='NAME'>
-                                        <string>John Doe</string>
-                                        <string>Jane Doe</string>
-                               </field>
-                               <field name='AGE'>
-                                       <number>34</number>
-                                       <number>31</number>
-                               </field>
-                       </recordset>
-                 </struct>
-       </data>
-</wddxPacket>
diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c
deleted file mode 100644 (file)
index b32623f..0000000
+++ /dev/null
@@ -1,1330 +0,0 @@
-/*
-   +----------------------------------------------------------------------+
-   | PHP Version 7                                                        |
-   +----------------------------------------------------------------------+
-   | Copyright (c) The PHP Group                                          |
-   +----------------------------------------------------------------------+
-   | This source file is subject to version 3.01 of the PHP license,      |
-   | that is bundled with this package in the file LICENSE, and is        |
-   | available through the world-wide-web at the following url:           |
-   | http://www.php.net/license/3_01.txt                                  |
-   | If you did not receive a copy of the PHP license and are unable to   |
-   | obtain it through the world-wide-web, please send a note to          |
-   | license@php.net so we can mail you a copy immediately.               |
-   +----------------------------------------------------------------------+
-   | Author: Andrei Zmievski <andrei@php.net>                             |
-   +----------------------------------------------------------------------+
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "php.h"
-
-#if HAVE_WDDX
-
-#include "ext/xml/expat_compat.h"
-#include "php_wddx.h"
-#include "php_wddx_api.h"
-
-#include "ext/xml/php_xml.h"
-#include "ext/standard/php_incomplete_class.h"
-#include "ext/standard/base64.h"
-#include "ext/standard/info.h"
-#include "zend_smart_str.h"
-#include "ext/standard/html.h"
-#include "ext/standard/php_string.h"
-#include "ext/date/php_date.h"
-#include "zend_globals.h"
-
-#define WDDX_BUF_LEN                   256
-#define PHP_CLASS_NAME_VAR             "php_class_name"
-
-#define EL_ARRAY                               "array"
-#define EL_BINARY                              "binary"
-#define EL_BOOLEAN                             "boolean"
-#define EL_CHAR                                        "char"
-#define EL_CHAR_CODE                   "code"
-#define EL_NULL                                        "null"
-#define EL_NUMBER                              "number"
-#define        EL_PACKET                               "wddxPacket"
-#define        EL_STRING                               "string"
-#define EL_STRUCT                              "struct"
-#define EL_VALUE                               "value"
-#define EL_VAR                                 "var"
-#define EL_NAME                                "name"
-#define EL_VERSION                             "version"
-#define EL_RECORDSET                   "recordset"
-#define EL_FIELD                               "field"
-#define EL_DATETIME                            "dateTime"
-
-#define php_wddx_deserialize(a,b) \
-       php_wddx_deserialize_ex(Z_STRVAL_P(a), Z_STRLEN_P(a), (b))
-
-#define SET_STACK_VARNAME                                                      \
-               if (stack->varname) {                                           \
-                       ent.varname = estrdup(stack->varname);  \
-                       efree(stack->varname);                                  \
-                       stack->varname = NULL;                                  \
-               } else                                                                          \
-                       ent.varname = NULL;                                             \
-
-static int le_wddx;
-
-typedef struct {
-       zval data;
-       enum {
-               ST_ARRAY,
-               ST_BOOLEAN,
-               ST_NULL,
-               ST_NUMBER,
-               ST_STRING,
-               ST_BINARY,
-               ST_STRUCT,
-               ST_RECORDSET,
-               ST_FIELD,
-               ST_DATETIME
-       } type;
-       char *varname;
-} st_entry;
-
-typedef struct {
-       int top, max;
-       char *varname;
-       zend_bool done;
-       void **elements;
-} wddx_stack;
-
-
-static void php_wddx_process_data(void *user_data, const XML_Char *s, int len);
-
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_serialize_value, 0, 0, 1)
-       ZEND_ARG_INFO(0, var)
-       ZEND_ARG_INFO(0, comment)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_serialize_vars, 0, 0, 1)
-       ZEND_ARG_VARIADIC_INFO(0, var_names)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_serialize_start, 0, 0, 0)
-       ZEND_ARG_INFO(0, comment)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_packet_end, 0, 0, 1)
-       ZEND_ARG_INFO(0, packet_id)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_add_vars, 0, 0, 2)
-       ZEND_ARG_INFO(0, packet_id)
-       ZEND_ARG_VARIADIC_INFO(0, var_names)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wddx_deserialize, 0, 0, 1)
-       ZEND_ARG_INFO(0, packet)
-ZEND_END_ARG_INFO()
-/* }}} */
-
-/* {{{ wddx_functions[]
- */
-static const zend_function_entry wddx_functions[] = {
-       PHP_DEP_FE(wddx_serialize_value, arginfo_wddx_serialize_value)
-       PHP_DEP_FE(wddx_serialize_vars, arginfo_wddx_serialize_vars)
-       PHP_DEP_FE(wddx_packet_start,   arginfo_wddx_serialize_start)
-       PHP_DEP_FE(wddx_packet_end,             arginfo_wddx_packet_end)
-       PHP_DEP_FE(wddx_add_vars,               arginfo_wddx_add_vars)
-       PHP_DEP_FE(wddx_deserialize,    arginfo_wddx_deserialize)
-       PHP_FE_END
-};
-/* }}} */
-
-PHP_MINIT_FUNCTION(wddx);
-PHP_MINFO_FUNCTION(wddx);
-
-/* {{{ dynamically loadable module stuff */
-#ifdef COMPILE_DL_WDDX
-ZEND_GET_MODULE(wddx)
-#endif /* COMPILE_DL_WDDX */
-/* }}} */
-
-/* {{{ wddx_module_entry
- */
-zend_module_entry wddx_module_entry = {
-       STANDARD_MODULE_HEADER,
-       "wddx",
-       wddx_functions,
-       PHP_MINIT(wddx),
-       NULL,
-       NULL,
-       NULL,
-       PHP_MINFO(wddx),
-    PHP_WDDX_VERSION,
-       STANDARD_MODULE_PROPERTIES
-};
-/* }}} */
-
-/* {{{ wddx_stack_init
- */
-static int wddx_stack_init(wddx_stack *stack)
-{
-       stack->top = 0;
-       stack->elements = (void **) safe_emalloc(sizeof(void **), STACK_BLOCK_SIZE, 0);
-       stack->max = STACK_BLOCK_SIZE;
-       stack->varname = NULL;
-       stack->done = 0;
-
-       return SUCCESS;
-}
-/* }}} */
-
-/* {{{ wddx_stack_push
- */
-static int wddx_stack_push(wddx_stack *stack, void *element, int size)
-{
-       if (stack->top >= stack->max) {         /* we need to allocate more memory */
-               stack->elements = (void **) erealloc(stack->elements,
-                                  (sizeof(void **) * (stack->max += STACK_BLOCK_SIZE)));
-       }
-       stack->elements[stack->top] = (void *) emalloc(size);
-       memcpy(stack->elements[stack->top], element, size);
-       return stack->top++;
-}
-/* }}} */
-
-/* {{{ wddx_stack_top
- */
-static int wddx_stack_top(wddx_stack *stack, void **element)
-{
-       if (stack->top > 0) {
-               *element = stack->elements[stack->top - 1];
-               return SUCCESS;
-       } else {
-               *element = NULL;
-               return FAILURE;
-       }
-}
-/* }}} */
-
-/* {{{ wddx_stack_is_empty
- */
-static int wddx_stack_is_empty(wddx_stack *stack)
-{
-       if (stack->top == 0) {
-               return 1;
-       } else {
-               return 0;
-       }
-}
-/* }}} */
-
-/* {{{ wddx_stack_destroy
- */
-static int wddx_stack_destroy(wddx_stack *stack)
-{
-       register int i;
-
-       if (stack->elements) {
-               for (i = 0; i < stack->top; i++) {
-                       if (Z_TYPE(((st_entry *)stack->elements[i])->data) != IS_UNDEF
-                                       && ((st_entry *)stack->elements[i])->type != ST_FIELD)  {
-                               zval_ptr_dtor(&((st_entry *)stack->elements[i])->data);
-                       }
-                       if (((st_entry *)stack->elements[i])->varname) {
-                               efree(((st_entry *)stack->elements[i])->varname);
-                       }
-                       efree(stack->elements[i]);
-               }
-               efree(stack->elements);
-       }
-       if (stack->varname) {
-               efree(stack->varname);
-       }
-       return SUCCESS;
-}
-/* }}} */
-
-/* {{{ release_wddx_packet_rsrc
- */
-static void release_wddx_packet_rsrc(zend_resource *rsrc)
-{
-       smart_str *str = (smart_str *)rsrc->ptr;
-       smart_str_free(str);
-       efree(str);
-}
-/* }}} */
-
-#include "ext/session/php_session.h"
-
-#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
-/* {{{ PS_SERIALIZER_ENCODE_FUNC
- */
-PS_SERIALIZER_ENCODE_FUNC(wddx)
-{
-       wddx_packet *packet;
-       zend_string *str;
-       PS_ENCODE_VARS;
-
-       packet = php_wddx_constructor();
-
-       php_wddx_packet_start(packet, NULL, 0);
-       php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
-
-       PS_ENCODE_LOOP(
-               php_wddx_serialize_var(packet, struc, key);
-       );
-
-       php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
-       php_wddx_packet_end(packet);
-       smart_str_0(packet);
-       str = zend_string_copy(packet->s);
-       php_wddx_destructor(packet);
-
-       return str;
-}
-/* }}} */
-
-/* {{{ PS_SERIALIZER_DECODE_FUNC
- */
-PS_SERIALIZER_DECODE_FUNC(wddx)
-{
-       zval retval;
-       zval *ent;
-       zend_string *key;
-       zend_ulong idx;
-       int ret;
-
-       if (vallen == 0) {
-               return SUCCESS;
-       }
-
-       ZVAL_UNDEF(&retval);
-       if ((ret = php_wddx_deserialize_ex(val, vallen, &retval)) == SUCCESS) {
-               if (Z_TYPE(retval) != IS_ARRAY) {
-                       zval_ptr_dtor_nogc(&retval);
-                       return FAILURE;
-               }
-               ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL(retval), idx, key, ent) {
-                       if (key == NULL) {
-                               key = zend_long_to_str(idx);
-                       } else {
-                               zend_string_addref(key);
-                       }
-                       if (php_set_session_var(key, ent, NULL)) {
-                               Z_TRY_ADDREF_P(ent);
-                       }
-                       PS_ADD_VAR(key);
-                       zend_string_release_ex(key, 0);
-               } ZEND_HASH_FOREACH_END();
-       }
-
-       zval_ptr_dtor(&retval);
-
-       return ret;
-}
-/* }}} */
-#endif
-
-/* {{{ PHP_MINIT_FUNCTION
- */
-PHP_MINIT_FUNCTION(wddx)
-{
-       le_wddx = zend_register_list_destructors_ex(release_wddx_packet_rsrc, NULL, "wddx", module_number);
-
-#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
-       php_session_register_serializer("wddx",
-                                                                       PS_SERIALIZER_ENCODE_NAME(wddx),
-                                                                       PS_SERIALIZER_DECODE_NAME(wddx));
-#endif
-
-       return SUCCESS;
-}
-/* }}} */
-
-/* {{{ PHP_MINFO_FUNCTION
- */
-PHP_MINFO_FUNCTION(wddx)
-{
-       php_info_print_table_start();
-#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
-       php_info_print_table_header(2, "WDDX Support", "enabled" );
-       php_info_print_table_row(2, "WDDX Session Serializer", "enabled" );
-#else
-       php_info_print_table_row(2, "WDDX Support", "enabled" );
-#endif
-       php_info_print_table_end();
-}
-/* }}} */
-
-/* {{{ php_wddx_packet_start
- */
-void php_wddx_packet_start(wddx_packet *packet, char *comment, size_t comment_len)
-{
-       php_wddx_add_chunk_static(packet, WDDX_PACKET_S);
-       if (comment) {
-               zend_string *escaped = php_escape_html_entities(
-                       comment, comment_len, 0, ENT_QUOTES, NULL);
-
-               php_wddx_add_chunk_static(packet, WDDX_HEADER_S);
-               php_wddx_add_chunk_static(packet, WDDX_COMMENT_S);
-               php_wddx_add_chunk_ex(packet, ZSTR_VAL(escaped), ZSTR_LEN(escaped));
-               php_wddx_add_chunk_static(packet, WDDX_COMMENT_E);
-               php_wddx_add_chunk_static(packet, WDDX_HEADER_E);
-
-               zend_string_release_ex(escaped, 0);
-       } else {
-               php_wddx_add_chunk_static(packet, WDDX_HEADER);
-       }
-       php_wddx_add_chunk_static(packet, WDDX_DATA_S);
-}
-/* }}} */
-
-/* {{{ php_wddx_packet_end
- */
-void php_wddx_packet_end(wddx_packet *packet)
-{
-       php_wddx_add_chunk_static(packet, WDDX_DATA_E);
-       php_wddx_add_chunk_static(packet, WDDX_PACKET_E);
-}
-/* }}} */
-
-#define FLUSH_BUF()                               \
-       if (l > 0) {                                  \
-               php_wddx_add_chunk_ex(packet, buf, l);    \
-               l = 0;                                    \
-       }
-
-/* {{{ php_wddx_serialize_string
- */
-static void php_wddx_serialize_string(wddx_packet *packet, zval *var)
-{
-       php_wddx_add_chunk_static(packet, WDDX_STRING_S);
-
-       if (Z_STRLEN_P(var) > 0) {
-               zend_string *buf = php_escape_html_entities(
-                       (unsigned char *) Z_STRVAL_P(var), Z_STRLEN_P(var), 0, ENT_QUOTES, NULL);
-
-               php_wddx_add_chunk_ex(packet, ZSTR_VAL(buf), ZSTR_LEN(buf));
-
-               zend_string_release_ex(buf, 0);
-       }
-       php_wddx_add_chunk_static(packet, WDDX_STRING_E);
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_number
- */
-static void php_wddx_serialize_number(wddx_packet *packet, zval *var)
-{
-       char tmp_buf[WDDX_BUF_LEN], *dec_point;
-       zend_string *str = zval_get_string_func(var);
-       snprintf(tmp_buf, sizeof(tmp_buf), WDDX_NUMBER, ZSTR_VAL(str));
-       zend_string_release_ex(str, 0);
-
-       dec_point = strchr(tmp_buf, ',');
-       if (dec_point) {
-               *dec_point = '.';
-       }
-       php_wddx_add_chunk(packet, tmp_buf);
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_boolean
- */
-static void php_wddx_serialize_boolean(wddx_packet *packet, zval *var)
-{
-       php_wddx_add_chunk(packet, Z_TYPE_P(var) == IS_TRUE ? WDDX_BOOLEAN_TRUE : WDDX_BOOLEAN_FALSE);
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_unset
- */
-static void php_wddx_serialize_unset(wddx_packet *packet)
-{
-       php_wddx_add_chunk_static(packet, WDDX_NULL);
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_object
- */
-static void php_wddx_serialize_object(wddx_packet *packet, zval *obj)
-{
-/* OBJECTS_FIXME */
-       zval *ent, fname, *varname;
-       zval retval;
-       zend_string *key;
-       zend_ulong idx;
-       char tmp_buf[WDDX_BUF_LEN];
-       HashTable *objhash, *sleephash;
-       zend_class_entry *ce;
-       PHP_CLASS_ATTRIBUTES;
-
-       PHP_SET_CLASS_ATTRIBUTES(obj);
-       ce = Z_OBJCE_P(obj);
-       if (!ce || ce->serialize || ce->unserialize) {
-               php_error_docref(NULL, E_WARNING, "Class %s can not be serialized", ZSTR_VAL(class_name));
-               PHP_CLEANUP_CLASS_ATTRIBUTES();
-               return;
-       }
-
-       ZVAL_STRING(&fname, "__sleep");
-       /*
-        * We try to call __sleep() method on object. It's supposed to return an
-        * array of property names to be serialized.
-        */
-       if (call_user_function(CG(function_table), obj, &fname, &retval, 0, 0) == SUCCESS) {
-               if (!Z_ISUNDEF(retval) && (sleephash = HASH_OF(&retval))) {
-                       php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
-                       snprintf(tmp_buf, WDDX_BUF_LEN, WDDX_VAR_S, PHP_CLASS_NAME_VAR);
-                       php_wddx_add_chunk(packet, tmp_buf);
-                       php_wddx_add_chunk_static(packet, WDDX_STRING_S);
-                       php_wddx_add_chunk_ex(packet, ZSTR_VAL(class_name), ZSTR_LEN(class_name));
-                       php_wddx_add_chunk_static(packet, WDDX_STRING_E);
-                       php_wddx_add_chunk_static(packet, WDDX_VAR_E);
-
-                       objhash = Z_OBJPROP_P(obj);
-
-                       ZEND_HASH_FOREACH_VAL(sleephash, varname) {
-                               if (Z_TYPE_P(varname) != IS_STRING) {
-                                       php_error_docref(NULL, E_NOTICE, "__sleep should return an array only containing the names of instance-variables to serialize.");
-                                       continue;
-                               }
-
-                               if ((ent = zend_hash_find(objhash, Z_STR_P(varname))) != NULL) {
-                                       php_wddx_serialize_var(packet, ent, Z_STR_P(varname));
-                               }
-                       } ZEND_HASH_FOREACH_END();
-
-                       php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
-               }
-       } else {
-               php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
-               snprintf(tmp_buf, WDDX_BUF_LEN, WDDX_VAR_S, PHP_CLASS_NAME_VAR);
-               php_wddx_add_chunk(packet, tmp_buf);
-               php_wddx_add_chunk_static(packet, WDDX_STRING_S);
-               php_wddx_add_chunk_ex(packet, ZSTR_VAL(class_name), ZSTR_LEN(class_name));
-               php_wddx_add_chunk_static(packet, WDDX_STRING_E);
-               php_wddx_add_chunk_static(packet, WDDX_VAR_E);
-
-               objhash = Z_OBJPROP_P(obj);
-               ZEND_HASH_FOREACH_KEY_VAL(objhash, idx, key, ent) {
-                       if (ent == obj) {
-                               continue;
-                       }
-                       if (key) {
-                               const char *class_name, *prop_name;
-                               size_t prop_name_len;
-                               zend_string *tmp;
-
-                               zend_unmangle_property_name_ex(key, &class_name, &prop_name, &prop_name_len);
-                               tmp = zend_string_init(prop_name, prop_name_len, 0);
-                               php_wddx_serialize_var(packet, ent, tmp);
-                               zend_string_release_ex(tmp, 0);
-                       } else {
-                               key = zend_long_to_str(idx);
-                               php_wddx_serialize_var(packet, ent, key);
-                               zend_string_release_ex(key, 0);
-                       }
-               } ZEND_HASH_FOREACH_END();
-               php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
-       }
-
-       PHP_CLEANUP_CLASS_ATTRIBUTES();
-
-       zval_ptr_dtor(&fname);
-       zval_ptr_dtor(&retval);
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_array
- */
-static void php_wddx_serialize_array(wddx_packet *packet, zval *arr)
-{
-       zval *ent;
-       zend_string *key;
-       int is_struct = 0;
-       zend_ulong idx;
-       HashTable *target_hash;
-       char tmp_buf[WDDX_BUF_LEN];
-       zend_ulong ind = 0;
-
-       target_hash = Z_ARRVAL_P(arr);
-       ZEND_HASH_FOREACH_KEY(target_hash, idx, key) {
-               if (key) {
-                       is_struct = 1;
-                       break;
-               }
-
-               if (idx != ind) {
-                       is_struct = 1;
-                       break;
-               }
-               ind++;
-       } ZEND_HASH_FOREACH_END();
-
-       if (is_struct) {
-               php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
-       } else {
-               snprintf(tmp_buf, sizeof(tmp_buf), WDDX_ARRAY_S, zend_hash_num_elements(target_hash));
-               php_wddx_add_chunk(packet, tmp_buf);
-       }
-
-       ZEND_HASH_FOREACH_KEY_VAL(target_hash, idx, key, ent) {
-               if (ent == arr) {
-                       continue;
-               }
-
-               if (is_struct) {
-                       if (key) {
-                               php_wddx_serialize_var(packet, ent, key);
-                       } else {
-                               key = zend_long_to_str(idx);
-                               php_wddx_serialize_var(packet, ent, key);
-                               zend_string_release_ex(key, 0);
-                       }
-               } else {
-                       php_wddx_serialize_var(packet, ent, NULL);
-               }
-       } ZEND_HASH_FOREACH_END();
-
-       if (is_struct) {
-               php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
-       } else {
-               php_wddx_add_chunk_static(packet, WDDX_ARRAY_E);
-       }
-}
-/* }}} */
-
-/* {{{ php_wddx_serialize_var
- */
-void php_wddx_serialize_var(wddx_packet *packet, zval *var, zend_string *name)
-{
-       HashTable *ht;
-
-       if (name) {
-               char *tmp_buf;
-               zend_string *name_esc = php_escape_html_entities((unsigned char *) ZSTR_VAL(name), ZSTR_LEN(name), 0, ENT_QUOTES, NULL);
-               tmp_buf = emalloc(ZSTR_LEN(name_esc) + sizeof(WDDX_VAR_S));
-               snprintf(tmp_buf, ZSTR_LEN(name_esc) + sizeof(WDDX_VAR_S), WDDX_VAR_S, ZSTR_VAL(name_esc));
-               php_wddx_add_chunk(packet, tmp_buf);
-               efree(tmp_buf);
-               zend_string_release_ex(name_esc, 0);
-       }
-
-       if (Z_TYPE_P(var) == IS_INDIRECT) {
-               var = Z_INDIRECT_P(var);
-       }
-       ZVAL_DEREF(var);
-       switch (Z_TYPE_P(var)) {
-               case IS_STRING:
-                       php_wddx_serialize_string(packet, var);
-                       break;
-
-               case IS_LONG:
-               case IS_DOUBLE:
-                       php_wddx_serialize_number(packet, var);
-                       break;
-
-               case IS_TRUE:
-               case IS_FALSE:
-                       php_wddx_serialize_boolean(packet, var);
-                       break;
-
-               case IS_NULL:
-                       php_wddx_serialize_unset(packet);
-                       break;
-
-               case IS_ARRAY:
-                       ht = Z_ARRVAL_P(var);
-                       if (Z_REFCOUNTED_P(var)) {
-                               if (GC_IS_RECURSIVE(ht)) {
-                                       zend_throw_error(NULL, "WDDX doesn't support circular references");
-                                       return;
-                               }
-                               GC_PROTECT_RECURSION(ht);
-                       }
-                       php_wddx_serialize_array(packet, var);
-                       if (Z_REFCOUNTED_P(var)) {
-                               GC_UNPROTECT_RECURSION(ht);
-                       }
-                       break;
-
-               case IS_OBJECT:
-                       ht = Z_OBJPROP_P(var);
-                       if (GC_IS_RECURSIVE(ht)) {
-                               zend_throw_error(NULL, "WDDX doesn't support circular references");
-                               return;
-                       }
-                       GC_PROTECT_RECURSION(ht);
-                       php_wddx_serialize_object(packet, var);
-                       GC_UNPROTECT_RECURSION(ht);
-                       break;
-       }
-
-       if (name) {
-               php_wddx_add_chunk_static(packet, WDDX_VAR_E);
-       }
-}
-/* }}} */
-
-/* {{{ php_wddx_add_var
- */
-static void php_wddx_add_var(wddx_packet *packet, zval *name_var)
-{
-       zval *val;
-       HashTable *target_hash;
-
-       if (Z_TYPE_P(name_var) == IS_STRING) {
-               zend_array *symbol_table = zend_rebuild_symbol_table();
-               if ((val = zend_hash_find(symbol_table, Z_STR_P(name_var))) != NULL) {
-                       if (Z_TYPE_P(val) == IS_INDIRECT) {
-                               val = Z_INDIRECT_P(val);
-                       }
-                       php_wddx_serialize_var(packet, val, Z_STR_P(name_var));
-               }
-       } else if (Z_TYPE_P(name_var) == IS_ARRAY || Z_TYPE_P(name_var) == IS_OBJECT)   {
-               int is_array = Z_TYPE_P(name_var) == IS_ARRAY;
-
-               target_hash = HASH_OF(name_var);
-
-               if (!Z_REFCOUNTED_P(name_var)) {
-                       ZEND_HASH_FOREACH_VAL(target_hash, val) {
-                               php_wddx_add_var(packet, val);
-                       } ZEND_HASH_FOREACH_END();
-               } else {
-                       if (is_array) {
-                               if (GC_IS_RECURSIVE(target_hash)) {
-                                       php_error_docref(NULL, E_WARNING, "recursion detected");
-                                       return;
-                               }
-                               GC_PROTECT_RECURSION(target_hash);
-                       }
-                       ZEND_HASH_FOREACH_VAL(target_hash, val) {
-                               ZVAL_DEREF(val);
-                               php_wddx_add_var(packet, val);
-
-                       } ZEND_HASH_FOREACH_END();
-                       if (is_array) {
-                               GC_UNPROTECT_RECURSION(target_hash);
-                       }
-               }
-       }
-}
-/* }}} */
-
-/* {{{ php_wddx_push_element
- */
-static void php_wddx_push_element(void *user_data, const XML_Char *name, const XML_Char **atts)
-{
-       st_entry ent;
-       wddx_stack *stack = (wddx_stack *)user_data;
-       if (!strcmp((char *)name, EL_PACKET)) {
-               int i;
-
-               if (atts) for (i=0; atts[i]; i++) {
-                       if (!strcmp((char *)atts[i], EL_VERSION)) {
-                               /* nothing for now */
-                       }
-               }
-       } else if (!strcmp((char *)name, EL_STRING)) {
-               ent.type = ST_STRING;
-               SET_STACK_VARNAME;
-
-               ZVAL_STR(&ent.data, ZSTR_EMPTY_ALLOC());
-               wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-       } else if (!strcmp((char *)name, EL_BINARY)) {
-               ent.type = ST_BINARY;
-               SET_STACK_VARNAME;
-
-               ZVAL_STR(&ent.data, ZSTR_EMPTY_ALLOC());
-               wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-       } else if (!strcmp((char *)name, EL_CHAR)) {
-               int i;
-
-               if (atts) for (i = 0; atts[i]; i++) {
-                       if (!strcmp((char *)atts[i], EL_CHAR_CODE) && atts[i+1] && atts[i+1][0]) {
-                               char tmp_buf[2];
-
-                               snprintf(tmp_buf, sizeof(tmp_buf), "%c", (char)strtol((char *)atts[i+1], NULL, 16));
-                               php_wddx_process_data(user_data, (XML_Char *) tmp_buf, strlen(tmp_buf));
-                               break;
-                       }
-               }
-       } else if (!strcmp((char *)name, EL_NUMBER)) {
-               ent.type = ST_NUMBER;
-               SET_STACK_VARNAME;
-
-               ZVAL_LONG(&ent.data, 0);
-               wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-       } else if (!strcmp((char *)name, EL_BOOLEAN)) {
-               int i;
-
-               ent.type = ST_BOOLEAN;
-               SET_STACK_VARNAME;
-               if (atts) for (i = 0; atts[i]; i++) {
-                       if (!strcmp((char *)atts[i], EL_VALUE) && atts[i+1] && atts[i+1][0]) {
-                               ZVAL_TRUE(&ent.data);
-                               wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-                               php_wddx_process_data(user_data, atts[i+1], strlen((char *)atts[i+1]));
-                               break;
-                       }
-               } else {
-                       ZVAL_FALSE(&ent.data);
-                       wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-               }
-       } else if (!strcmp((char *)name, EL_NULL)) {
-               ent.type = ST_NULL;
-               SET_STACK_VARNAME;
-
-               ZVAL_NULL(&ent.data);
-
-               wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-       } else if (!strcmp((char *)name, EL_ARRAY)) {
-               ent.type = ST_ARRAY;
-               SET_STACK_VARNAME;
-
-               array_init(&ent.data);
-               wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-       } else if (!strcmp((char *)name, EL_STRUCT)) {
-               ent.type = ST_STRUCT;
-               SET_STACK_VARNAME;
-               array_init(&ent.data);
-               wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-       } else if (!strcmp((char *)name, EL_VAR)) {
-               int i;
-
-               if (atts) for (i = 0; atts[i]; i++) {
-                       if (!strcmp((char *)atts[i], EL_NAME) && atts[i+1] && atts[i+1][0]) {
-                               if (stack->varname) efree(stack->varname);
-                               stack->varname = estrdup((char *)atts[i+1]);
-                               break;
-                       }
-               }
-       } else if (!strcmp((char *)name, EL_RECORDSET)) {
-               int i;
-
-               ent.type = ST_RECORDSET;
-               SET_STACK_VARNAME;
-               array_init(&ent.data);
-
-               if (atts) for (i = 0; atts[i]; i++) {
-                       if (!strcmp((char *)atts[i], "fieldNames") && atts[i+1] && atts[i+1][0]) {
-                               zval tmp;
-                               char *key;
-                               const char *p1, *p2, *endp;
-
-                               i++;
-                               endp = (char *)atts[i] + strlen((char *)atts[i]);
-                               p1 = (char *)atts[i];
-                               while ((p2 = php_memnstr(p1, ",", sizeof(",")-1, endp)) != NULL) {
-                                       key = estrndup(p1, p2 - p1);
-                                       array_init(&tmp);
-                                       add_assoc_zval_ex(&ent.data, key, p2 - p1, &tmp);
-                                       p1 = p2 + sizeof(",")-1;
-                                       efree(key);
-                               }
-
-                               if (p1 <= endp) {
-                                       array_init(&tmp);
-                                       add_assoc_zval_ex(&ent.data, p1, endp - p1, &tmp);
-                               }
-
-                               break;
-                       }
-               }
-
-               wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-       } else if (!strcmp((char *)name, EL_FIELD)) {
-               int i;
-               st_entry ent;
-
-               ent.type = ST_FIELD;
-               ent.varname = NULL;
-               ZVAL_UNDEF(&ent.data);
-
-               if (atts) for (i = 0; atts[i]; i++) {
-                       if (!strcmp((char *)atts[i], EL_NAME) && atts[i+1] && atts[i+1][0]) {
-                               st_entry *recordset;
-                               zval *field;
-
-                               if (wddx_stack_top(stack, (void**)&recordset) == SUCCESS &&
-                                       recordset->type == ST_RECORDSET &&
-                                       (field = zend_hash_str_find(Z_ARRVAL(recordset->data), (char*)atts[i+1], strlen((char *)atts[i+1]))) != NULL) {
-                                       ZVAL_COPY_VALUE(&ent.data, field);
-                               }
-
-                               break;
-                       }
-               }
-
-               wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-       } else if (!strcmp((char *)name, EL_DATETIME)) {
-               ent.type = ST_DATETIME;
-               SET_STACK_VARNAME;
-
-               ZVAL_LONG(&ent.data, 0);
-               wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
-       }
-}
-/* }}} */
-
-/* {{{ php_wddx_pop_element
- */
-static void php_wddx_pop_element(void *user_data, const XML_Char *name)
-{
-       st_entry                        *ent1, *ent2;
-       wddx_stack                      *stack = (wddx_stack *)user_data;
-       HashTable                       *target_hash;
-       zend_class_entry        *pce;
-       zval                            obj;
-
-/* OBJECTS_FIXME */
-       if (stack->top == 0) {
-               return;
-       }
-
-       if (!strcmp((char *)name, EL_STRING) || !strcmp((char *)name, EL_NUMBER) ||
-               !strcmp((char *)name, EL_BOOLEAN) || !strcmp((char *)name, EL_NULL) ||
-               !strcmp((char *)name, EL_ARRAY) || !strcmp((char *)name, EL_STRUCT) ||
-               !strcmp((char *)name, EL_RECORDSET) || !strcmp((char *)name, EL_BINARY) ||
-               !strcmp((char *)name, EL_DATETIME)) {
-               wddx_stack_top(stack, (void**)&ent1);
-
-               if (Z_TYPE(ent1->data) == IS_UNDEF) {
-                       if (stack->top > 1) {
-                               stack->top--;
-                               efree(ent1);
-                       } else {
-                               stack->done = 1;
-                       }
-                       return;
-               }
-
-               if (!strcmp((char *)name, EL_BINARY)) {
-                       zend_string *new_str = NULL;
-
-                       if (ZSTR_EMPTY_ALLOC() != Z_STR(ent1->data)) {
-                               new_str = php_base64_decode(
-                                       (unsigned char *)Z_STRVAL(ent1->data), Z_STRLEN(ent1->data));
-                       }
-
-                       zval_ptr_dtor(&ent1->data);
-                       if (new_str) {
-                               ZVAL_STR(&ent1->data, new_str);
-                       } else {
-                               ZVAL_EMPTY_STRING(&ent1->data);
-                       }
-               }
-
-               /* Call __wakeup() method on the object. */
-               if (Z_TYPE(ent1->data) == IS_OBJECT) {
-                       zval fname, retval;
-
-                       ZVAL_STRING(&fname, "__wakeup");
-
-                       call_user_function(NULL, &ent1->data, &fname, &retval, 0, 0);
-
-                       zval_ptr_dtor(&fname);
-                       zval_ptr_dtor(&retval);
-               }
-
-               if (stack->top > 1) {
-                       stack->top--;
-                       wddx_stack_top(stack, (void**)&ent2);
-
-                       /* if non-existent field */
-                       if (Z_ISUNDEF(ent2->data)) {
-                               zval_ptr_dtor(&ent1->data);
-                               efree(ent1);
-                               return;
-                       }
-
-                       if (Z_TYPE(ent2->data) == IS_ARRAY || Z_TYPE(ent2->data) == IS_OBJECT) {
-                               target_hash = HASH_OF(&ent2->data);
-
-                               if (ent1->varname) {
-                                       if (!strcmp(ent1->varname, PHP_CLASS_NAME_VAR) &&
-                                               Z_TYPE(ent1->data) == IS_STRING && Z_STRLEN(ent1->data) &&
-                                               ent2->type == ST_STRUCT && Z_TYPE(ent2->data) == IS_ARRAY) {
-                                               zend_bool incomplete_class = 0;
-
-                                               zend_str_tolower(Z_STRVAL(ent1->data), Z_STRLEN(ent1->data));
-                                               zend_string_forget_hash_val(Z_STR(ent1->data));
-                                               if ((pce = zend_hash_find_ptr(EG(class_table), Z_STR(ent1->data))) == NULL) {
-                                                       incomplete_class = 1;
-                                                       pce = PHP_IC_ENTRY;
-                                               }
-
-                                               if (pce != PHP_IC_ENTRY && (pce->serialize || pce->unserialize)) {
-                                                       zval_ptr_dtor(&ent2->data);
-                                                       ZVAL_UNDEF(&ent2->data);
-                                                       php_error_docref(NULL, E_WARNING, "Class %s can not be unserialized", Z_STRVAL(ent1->data));
-                                               } else {
-                                                       /* Initialize target object */
-                                                       if (object_init_ex(&obj, pce) != SUCCESS || EG(exception)) {
-                                                               zval_ptr_dtor(&ent2->data);
-                                                               ZVAL_UNDEF(&ent2->data);
-                                                               php_error_docref(NULL, E_WARNING, "Class %s can not be instantiated", Z_STRVAL(ent1->data));
-                                                       } else {
-                                                               /* Merge current hashtable with object's default properties */
-                                                               zend_hash_merge(Z_OBJPROP(obj),
-                                                                                               Z_ARRVAL(ent2->data),
-                                                                                               zval_add_ref, 0);
-
-                                                               if (incomplete_class) {
-                                                                       php_store_class_name(&obj, Z_STRVAL(ent1->data), Z_STRLEN(ent1->data));
-                                                               }
-
-                                                               /* Clean up old array entry */
-                                                               zval_ptr_dtor(&ent2->data);
-
-                                                               /* Set stack entry to point to the newly created object */
-                                                               ZVAL_COPY_VALUE(&ent2->data, &obj);
-                                                       }
-                                               }
-
-                                               /* Clean up class name var entry */
-                                               zval_ptr_dtor(&ent1->data);
-                                       } else if (Z_TYPE(ent2->data) == IS_OBJECT) {
-                                               zend_update_property(Z_OBJCE(ent2->data), &ent2->data, ent1->varname, strlen(ent1->varname), &ent1->data);
-                                               Z_TRY_DELREF(ent1->data);
-                                       } else {
-                                               zend_symtable_str_update(target_hash, ent1->varname, strlen(ent1->varname), &ent1->data);
-                                       }
-                                       efree(ent1->varname);
-                               } else  {
-                                       zend_hash_next_index_insert(target_hash, &ent1->data);
-                               }
-                       }
-                       efree(ent1);
-               } else {
-                       stack->done = 1;
-               }
-       } else if (!strcmp((char *)name, EL_VAR) && stack->varname) {
-               efree(stack->varname);
-               stack->varname = NULL;
-       } else if (!strcmp((char *)name, EL_FIELD)) {
-               st_entry *ent;
-               wddx_stack_top(stack, (void **)&ent);
-               efree(ent);
-               stack->top--;
-       }
-}
-/* }}} */
-
-/* {{{ php_wddx_process_data
- */
-static void php_wddx_process_data(void *user_data, const XML_Char *s, int len)
-{
-       st_entry *ent;
-       wddx_stack *stack = (wddx_stack *)user_data;
-
-       if (!wddx_stack_is_empty(stack) && !stack->done) {
-               wddx_stack_top(stack, (void**)&ent);
-               switch (ent->type) {
-                       case ST_BINARY:
-                       case ST_STRING:
-                               if (Z_STRLEN(ent->data) == 0) {
-                                       zval_ptr_dtor(&ent->data);
-                                       ZVAL_STRINGL(&ent->data, (char *)s, len);
-                               } else {
-                                       Z_STR(ent->data) = zend_string_extend(Z_STR(ent->data), Z_STRLEN(ent->data) + len, 0);
-                                       memcpy(Z_STRVAL(ent->data) + Z_STRLEN(ent->data) - len, (char *)s, len);
-                                       Z_STRVAL(ent->data)[Z_STRLEN(ent->data)] = '\0';
-                               }
-                               break;
-                       case ST_NUMBER:
-                               ZVAL_STRINGL(&ent->data, (char *)s, len);
-                               convert_scalar_to_number(&ent->data);
-                               break;
-
-                       case ST_BOOLEAN:
-                               if (!strcmp((char *)s, "true")) {
-                                       ZVAL_TRUE(&ent->data);
-                               } else if (!strcmp((char *)s, "false")) {
-                                       ZVAL_FALSE(&ent->data);
-                               } else {
-                                       zval_ptr_dtor(&ent->data);
-                                       if (ent->varname) {
-                                               efree(ent->varname);
-                                               ent->varname = NULL;
-                                       }
-                                       ZVAL_UNDEF(&ent->data);
-                               }
-                               break;
-
-                       case ST_DATETIME: {
-                               zend_string *str;
-
-                               if (Z_TYPE(ent->data) == IS_STRING) {
-                                       str = zend_string_safe_alloc(Z_STRLEN(ent->data), 1, len, 0);
-                                       memcpy(ZSTR_VAL(str), Z_STRVAL(ent->data), Z_STRLEN(ent->data));
-                                       memcpy(ZSTR_VAL(str) + Z_STRLEN(ent->data), s, len);
-                                       ZSTR_VAL(str)[ZSTR_LEN(str)] = '\0';
-                                       zval_ptr_dtor_str(&ent->data);
-                               } else {
-                                       str = zend_string_init((char *)s, len, 0);
-                               }
-
-                               ZVAL_LONG(&ent->data, php_parse_date(ZSTR_VAL(str), NULL));
-                               /* date out of range < 1969 or > 2038 */
-                               if (Z_LVAL(ent->data) == -1) {
-                                       ZVAL_STR_COPY(&ent->data, str);
-                               }
-
-                               zend_string_release_ex(str, 0);
-                       }
-                               break;
-
-                       default:
-                               break;
-               }
-       }
-}
-/* }}} */
-
-/* {{{ php_wddx_deserialize_ex
- */
-int php_wddx_deserialize_ex(const char *value, size_t vallen, zval *return_value)
-{
-       wddx_stack stack;
-       XML_Parser parser;
-       st_entry *ent;
-       int retval;
-
-       wddx_stack_init(&stack);
-       parser = XML_ParserCreate((XML_Char *) "UTF-8");
-
-       XML_SetUserData(parser, &stack);
-       XML_SetElementHandler(parser, php_wddx_push_element, php_wddx_pop_element);
-       XML_SetCharacterDataHandler(parser, php_wddx_process_data);
-
-       /* XXX value should be parsed in the loop to exhaust size_t */
-       XML_Parse(parser, (const XML_Char *) value, (int)vallen, 1);
-
-       XML_ParserFree(parser);
-
-       if (stack.top == 1) {
-               wddx_stack_top(&stack, (void**)&ent);
-               if (Z_ISUNDEF(ent->data)) {
-                       retval = FAILURE;
-               } else {
-                       ZVAL_COPY(return_value, &ent->data);
-                       retval = SUCCESS;
-               }
-       } else {
-               retval = FAILURE;
-       }
-
-       wddx_stack_destroy(&stack);
-
-       return retval;
-}
-/* }}} */
-
-/* {{{ proto string wddx_serialize_value(mixed var [, string comment])
-   Creates a new packet and serializes the given value */
-PHP_FUNCTION(wddx_serialize_value)
-{
-       zval *var;
-       char *comment = NULL;
-       size_t comment_len = 0;
-       wddx_packet *packet;
-
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "z|s", &var, &comment, &comment_len) == FAILURE) {
-               return;
-       }
-
-       packet = php_wddx_constructor();
-
-       php_wddx_packet_start(packet, comment, comment_len);
-       php_wddx_serialize_var(packet, var, NULL);
-       php_wddx_packet_end(packet);
-       smart_str_0(packet);
-
-       RETVAL_STR_COPY(packet->s);
-       php_wddx_destructor(packet);
-}
-/* }}} */
-
-/* {{{ proto string wddx_serialize_vars(mixed var_name [, mixed ...])
-   Creates a new packet and serializes given variables into a struct */
-PHP_FUNCTION(wddx_serialize_vars)
-{
-       int num_args, i;
-       wddx_packet *packet;
-       zval *args = NULL;
-
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &num_args) == FAILURE) {
-               return;
-       }
-
-       packet = php_wddx_constructor();
-
-       php_wddx_packet_start(packet, NULL, 0);
-       php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
-
-       for (i=0; i<num_args; i++) {
-               zval *arg;
-               if (!Z_ISREF(args[i])) {
-                       arg = &args[i];
-               } else {
-                       arg = Z_REFVAL(args[i]);
-               }
-               if (Z_TYPE_P(arg) != IS_ARRAY && Z_TYPE_P(arg) != IS_OBJECT) {
-                       convert_to_string_ex(arg);
-               }
-               php_wddx_add_var(packet, arg);
-       }
-
-       php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
-       php_wddx_packet_end(packet);
-       smart_str_0(packet);
-
-       RETVAL_STR_COPY(packet->s);
-       php_wddx_destructor(packet);
-}
-/* }}} */
-
-/* {{{ php_wddx_constructor
- */
-wddx_packet *php_wddx_constructor(void)
-{
-       smart_str *packet;
-
-       packet = ecalloc(1, sizeof(smart_str));
-
-       return packet;
-}
-/* }}} */
-
-/* {{{ php_wddx_destructor
- */
-void php_wddx_destructor(wddx_packet *packet)
-{
-       smart_str_free(packet);
-       efree(packet);
-}
-/* }}} */
-
-/* {{{ proto resource wddx_packet_start([string comment])
-   Starts a WDDX packet with optional comment and returns the packet id */
-PHP_FUNCTION(wddx_packet_start)
-{
-       char *comment = NULL;
-       size_t comment_len = 0;
-       wddx_packet *packet;
-
-       comment = NULL;
-
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "|s", &comment, &comment_len) == FAILURE) {
-               return;
-       }
-
-       packet = php_wddx_constructor();
-
-       php_wddx_packet_start(packet, comment, comment_len);
-       php_wddx_add_chunk_static(packet, WDDX_STRUCT_S);
-
-       RETURN_RES(zend_register_resource(packet, le_wddx));
-}
-/* }}} */
-
-/* {{{ proto string wddx_packet_end(resource packet_id)
-   Ends specified WDDX packet and returns the string containing the packet */
-PHP_FUNCTION(wddx_packet_end)
-{
-       zval *packet_id;
-       wddx_packet *packet = NULL;
-
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &packet_id) == FAILURE) {
-               return;
-       }
-
-       if ((packet = (wddx_packet *)zend_fetch_resource(Z_RES_P(packet_id), "WDDX packet ID", le_wddx)) == NULL) {
-               RETURN_FALSE;
-       }
-
-       php_wddx_add_chunk_static(packet, WDDX_STRUCT_E);
-
-       php_wddx_packet_end(packet);
-       smart_str_0(packet);
-
-       RETVAL_STR_COPY(packet->s);
-
-       zend_list_close(Z_RES_P(packet_id));
-}
-/* }}} */
-
-/* {{{ proto bool wddx_add_vars(resource packet_id,  mixed var_names [, mixed ...])
-   Serializes given variables and adds them to packet given by packet_id */
-PHP_FUNCTION(wddx_add_vars)
-{
-       int num_args, i;
-       zval *args = NULL;
-       zval *packet_id;
-       wddx_packet *packet = NULL;
-
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "r+", &packet_id, &args, &num_args) == FAILURE) {
-               return;
-       }
-
-       if ((packet = (wddx_packet *)zend_fetch_resource(Z_RES_P(packet_id), "WDDX packet ID", le_wddx)) == NULL) {
-               RETURN_FALSE;
-       }
-
-       for (i=0; i<num_args; i++) {
-               zval *arg;
-               if (!Z_ISREF(args[i])) {
-                       arg = &args[i];
-               } else {
-                       arg = Z_REFVAL(args[i]);
-               }
-               if (Z_TYPE_P(arg) != IS_ARRAY && Z_TYPE_P(arg) != IS_OBJECT) {
-                       convert_to_string_ex(arg);
-               }
-               php_wddx_add_var(packet, arg);
-       }
-
-       RETURN_TRUE;
-}
-/* }}} */
-
-/* {{{ proto mixed wddx_deserialize(mixed packet)
-   Deserializes given packet and returns a PHP value */
-PHP_FUNCTION(wddx_deserialize)
-{
-       zval *packet;
-       php_stream *stream = NULL;
-       zend_string *payload = NULL;
-
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &packet) == FAILURE) {
-               return;
-       }
-
-       if (Z_TYPE_P(packet) == IS_STRING) {
-               payload = Z_STR_P(packet);
-       } else if (Z_TYPE_P(packet) == IS_RESOURCE) {
-               php_stream_from_zval(stream, packet);
-               if (stream) {
-                       payload = php_stream_copy_to_mem(stream, PHP_STREAM_COPY_ALL, 0);
-               }
-       } else {
-               php_error_docref(NULL, E_WARNING, "Expecting parameter 1 to be a string or a stream");
-               return;
-       }
-
-       if (payload == NULL) {
-               return;
-       }
-
-       php_wddx_deserialize_ex(ZSTR_VAL(payload), ZSTR_LEN(payload), return_value);
-
-       if (stream) {
-               efree(payload);
-       }
-}
-/* }}} */
-
-#endif /* HAVE_LIBEXPAT */
index 45093ec7396faddc20db70035c8e91bbd01d60c1..c67b6ae0b53d77ee178180897b2c6c11260eddc7 100644 (file)
@@ -92,9 +92,6 @@
 #if HAVE_XML
 #include "ext/xml/php_xml.h"
 #endif
-#if HAVE_XML && HAVE_WDDX
-#include "ext/wddx/php_wddx.h"
-#endif
 #include "ext/com_dotnet/php_com_dotnet.h"
 #ifdef HAVE_SPL
 #include "ext/spl/php_spl.h"
@@ -164,9 +161,6 @@ static zend_module_entry * const php_builtin_extensions[] = {
 #if HAVE_XML
        ,phpext_xml_ptr
 #endif
-#if HAVE_XML && HAVE_WDDX
-       ,phpext_wddx_ptr
-#endif
 #if HAVE_SPL
        ,phpext_spl_ptr
 #endif