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

ext/soap/php_encoding.c

index 118f8bc9524473e5c3889247f971c9a288fcb45b..a46a62ccf2b11d7af35ecb58ca6ae793af5e7e0d 100644 (file)
@@ -779,7 +779,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;
 
@@ -789,7 +789,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;
@@ -797,7 +798,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);
        }
@@ -811,7 +813,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;
@@ -834,7 +836,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);