]> git.sesse.net Git - xml-template/blobdiff - php5-swig/xml-template.swig
Make the php5-swig XML_Template_process function mutating; fits better with the regul...
[xml-template] / php5-swig / xml-template.swig
index 517595168d99f6e129cd09560502e98b1a08d05a..9cd270ec3126b115e1dc24a0fd5b5bbedd226828 100644 (file)
@@ -76,10 +76,10 @@ Directive* convert_php_objects_to_directive(zval *obj)
                if (SWIG_ConvertPtr(obj, (void **)&doc, SWIGTYPE_p_XmlDocPtrWrapper, 0) < 0 || doc == NULL) {
                        return NULL;
                }
-               return new ReplaceInclude(xmlCopyDoc(doc->get()->ptr, 1));
+               return new ReplaceInclude(xmlCopyDoc((*doc)->ptr, 1));
        }
        case IS_NULL:
-               return NULL;
+               return new Replace { "" };
        default:
                printf("WARNING: Unknown type %d!\n", Z_TYPE_P(obj));
                break;
@@ -95,12 +95,10 @@ XmlDocPtrWrapper XML_Template_process_file(const std::string &input_filename, Di
        return XmlDocPtrWrapper(new XmlDocWrapper { ret });
 }
 
-XmlDocPtrWrapper XML_Template_process(XmlDocPtrWrapper doc, Directive *root_directive, bool clean)
+void XML_Template_process(XmlDocPtrWrapper doc, Directive *root_directive, bool clean)
 {
-       xmlDocPtr new_doc = xmlCopyDoc(doc->ptr, 1);
-       root_directive->process(xmlDocGetRootElement(new_doc), clean);
+       root_directive->process(xmlDocGetRootElement(doc->ptr), clean);
        delete root_directive;
-       return XmlDocPtrWrapper(new XmlDocWrapper { new_doc });
 }
 
 namespace {
@@ -134,6 +132,6 @@ std::string XML_Template_convert_doc_to_string(XmlDocPtrWrapper doc)
 }
 
 XmlDocPtrWrapper XML_Template_process_file(const std::string &input_filename, Directive *root_directive, bool clean);
-XmlDocPtrWrapper XML_Template_process(XmlDocPtrWrapper doc, Directive *root_directive, bool clean);
+void XML_Template_process(XmlDocPtrWrapper doc, Directive *root_directive, bool clean);
 std::string XML_Template_convert_doc_to_string(XmlDocPtrWrapper doc);