]> granicus.if.org Git - php/commitdiff
Optimize the other string conversion functions here to just create raw
authorRasmus Lerdorf <rasmus@php.net>
Thu, 15 Jun 2006 22:44:55 +0000 (22:44 +0000)
committerRasmus Lerdorf <rasmus@php.net>
Thu, 15 Jun 2006 22:44:55 +0000 (22:44 +0000)
text nodes.

ext/soap/php_encoding.c

index 9abb704ce81a79097ebc792d1e629cf17e5dfc82..def93ffeaed4a6f87eea3ff560e963c138695f71 100644 (file)
@@ -780,7 +780,7 @@ static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNo
 
 static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNodePtr parent)
 {
-       xmlNodePtr ret;
+       xmlNodePtr ret, text;
        unsigned char *str;
        int str_len;
 
@@ -790,7 +790,8 @@ static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNo
 
        if (Z_TYPE_P(data) == IS_STRING) {                      
                str = php_base64_encode((unsigned char*)Z_STRVAL_P(data), Z_STRLEN_P(data), &str_len);
-               xmlNodeSetContentLen(ret, str, str_len);
+               text = xmlNewTextLen(str, str_len);
+               xmlAddChild(ret, text);
                efree(str);
        } else {
                zval tmp = *data;
@@ -798,7 +799,8 @@ static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNo
                zval_copy_ctor(&tmp);
                convert_to_string(&tmp);
                str = php_base64_encode((unsigned char*)Z_STRVAL(tmp), Z_STRLEN(tmp), &str_len);
-               xmlNodeSetContentLen(ret, str, str_len);
+               text = xmlNewTextLen(str, str_len);
+               xmlAddChild(ret, text);
                efree(str);
                zval_dtor(&tmp);
        }
@@ -812,7 +814,7 @@ static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNo
 static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zval *data, int style, xmlNodePtr parent)
 {
        static char hexconvtab[] = "0123456789ABCDEF";
-       xmlNodePtr ret;
+       xmlNodePtr ret, text;
        unsigned char *str;
        zval tmp;
        int i, j;
@@ -835,7 +837,8 @@ static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zval *data, int style, xmlNo
        }
        str[j] = '\0';
 
-       xmlNodeSetContentLen(ret, str, Z_STRLEN_P(data) * 2 * sizeof(char));
+       text = xmlNewTextLen(str, Z_STRLEN_P(data) * 2 * sizeof(char));
+       xmlAddChild(ret, text);
        efree(str);
        if (data == &tmp) {
                zval_dtor(&tmp);