diff options
Diffstat (limited to 'ext/dom/document.c')
| -rw-r--r-- | ext/dom/document.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/ext/dom/document.c b/ext/dom/document.c index bdb58497b9..2b6ce169e8 100644 --- a/ext/dom/document.c +++ b/ext/dom/document.c @@ -251,12 +251,14 @@ int dom_document_doctype_read(dom_object *obj, zval **retval TSRMLS_DC) return FAILURE; } + ALLOC_ZVAL(*retval); + dtdptr = xmlGetIntSubset(docp); if (!dtdptr) { - return FAILURE; + ZVAL_NULL(*retval); + return SUCCESS; } - ALLOC_ZVAL(*retval); if (NULL == (*retval = php_dom_create_object((xmlNodePtr) dtdptr, &ret, NULL, *retval, obj TSRMLS_CC))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); return FAILURE; @@ -299,12 +301,14 @@ int dom_document_document_element_read(dom_object *obj, zval **retval TSRMLS_DC) return FAILURE; } + ALLOC_ZVAL(*retval); + root = xmlDocGetRootElement(docp); if (!root) { - return FAILURE; + ZVAL_NULL(*retval); + return SUCCESS; } - ALLOC_ZVAL(*retval); if (NULL == (*retval = php_dom_create_object(root, &ret, NULL, *retval, obj TSRMLS_CC))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); return FAILURE; |
