rrichards               Sun May 16 06:30:18 2004 EDT

  Modified files:              
    /php-src/ext/dom    TODO attr.c cdatasection.c comment.c document.c 
                        documentfragment.c dom_fe.h element.c 
                        entityreference.c php_dom.c 
                        processinginstruction.c text.c xpath.c 
  Log:
  constructors throw DOMException
  add DOM_PHP_ERR DomException code
  validate tagnames in constructors
  use C style comments
  update TODO
  
http://cvs.php.net/diff.php/php-src/ext/dom/TODO?r1=1.1&r2=1.2&ty=u
Index: php-src/ext/dom/TODO
diff -u php-src/ext/dom/TODO:1.1 php-src/ext/dom/TODO:1.2
--- php-src/ext/dom/TODO:1.1    Thu Jun  5 13:06:52 2003
+++ php-src/ext/dom/TODO        Sun May 16 06:30:16 2004
@@ -1,12 +1,4 @@
-1) Change _node_list_pointer to something faster than just a linked list.
-       Currently there to test that unlinked node tracking works
-2) Possible create new object type for documents as these are the only types which 
need to track nodes
-       - Would also require its own dtor functionality
-3) Define correct behavior. When certain types of nodes are destroyed, 
-       do we unlink children (if referenced) or just destroy them. (Element/Attribute 
nodes)
-4) Find out where XPath goes (this extension or its own)
-5) What DOM object types are really needed (i.e. not currently using DOMString)
-6) Determine how to handle non speced functionality.
-       i.e validation (add method or implement as property for processing)
-
-
+For 5.1
+1) enhance XPath functionality
+2) look at auto encoding support for in/output
+3) What DOM object types are really needed (i.e. not currently using DOMString)
http://cvs.php.net/diff.php/php-src/ext/dom/attr.c?r1=1.13&r2=1.14&ty=u
Index: php-src/ext/dom/attr.c
diff -u php-src/ext/dom/attr.c:1.13 php-src/ext/dom/attr.c:1.14
--- php-src/ext/dom/attr.c:1.13 Wed Mar 31 12:18:59 2004
+++ php-src/ext/dom/attr.c      Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: attr.c,v 1.13 2004/03/31 17:18:59 rrichards Exp $ */
+/* $Id: attr.c,v 1.14 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -52,23 +52,29 @@
        xmlNodePtr oldnode = NULL;
        dom_object *intern;
        char *name, *value = NULL;
-       int name_len, value_len;
+       int name_len, value_len, name_valid;
 
+       php_set_error_handling(EH_THROW, dom_domexception_class_entry TSRMLS_CC);
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os|s", 
&id, dom_attr_class_entry, &name, &name_len, &value, &value_len) == FAILURE) {
+               php_std_error_handling();
                return;
        }
 
+       php_std_error_handling();
        intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC);
 
-       if (name_len == 0) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Attribute name is 
required");
+       name_valid = xmlValidateName((xmlChar *) name, 0);
+       if (name_valid != 0) {
+               php_dom_throw_error(INVALID_CHARACTER_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
        }
 
        nodep = xmlNewProp(NULL, (xmlChar *) name, value);
 
-       if (!nodep)
+       if (!nodep) {
+               php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
+       }
 
        if (intern != NULL) {
                oldnode = (xmlNodePtr)intern->ptr;
http://cvs.php.net/diff.php/php-src/ext/dom/cdatasection.c?r1=1.8&r2=1.9&ty=u
Index: php-src/ext/dom/cdatasection.c
diff -u php-src/ext/dom/cdatasection.c:1.8 php-src/ext/dom/cdatasection.c:1.9
--- php-src/ext/dom/cdatasection.c:1.8  Wed Mar 31 12:18:59 2004
+++ php-src/ext/dom/cdatasection.c      Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: cdatasection.c,v 1.8 2004/03/31 17:18:59 rrichards Exp $ */
+/* $Id: cdatasection.c,v 1.9 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -50,14 +50,19 @@
        char *value = NULL;
        int value_len;
 
+       php_set_error_handling(EH_THROW, dom_domexception_class_entry TSRMLS_CC);
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", 
&id, dom_cdatasection_class_entry, &value, &value_len) == FAILURE) {
+               php_std_error_handling();
                return;
        }
 
+       php_std_error_handling();
        nodep = xmlNewCDataBlock(NULL, (xmlChar *) value, value_len);
 
-       if (!nodep)
+       if (!nodep) {
+               php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
+       }
 
        intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC);
        if (intern != NULL) {
http://cvs.php.net/diff.php/php-src/ext/dom/comment.c?r1=1.8&r2=1.9&ty=u
Index: php-src/ext/dom/comment.c
diff -u php-src/ext/dom/comment.c:1.8 php-src/ext/dom/comment.c:1.9
--- php-src/ext/dom/comment.c:1.8       Wed Mar 31 12:18:59 2004
+++ php-src/ext/dom/comment.c   Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: comment.c,v 1.8 2004/03/31 17:18:59 rrichards Exp $ */
+/* $Id: comment.c,v 1.9 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -50,14 +50,19 @@
        char *value = NULL;
        int value_len;
 
+       php_set_error_handling(EH_THROW, dom_domexception_class_entry TSRMLS_CC);
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|s", 
&id, dom_comment_class_entry, &value, &value_len) == FAILURE) {
+               php_std_error_handling();
                return;
        }
 
+       php_std_error_handling();
        nodep = xmlNewComment((xmlChar *) value);
 
-       if (!nodep)
+       if (!nodep) {
+               php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
+       }
 
        intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC);
        if (intern != NULL) {
http://cvs.php.net/diff.php/php-src/ext/dom/document.c?r1=1.51&r2=1.52&ty=u
Index: php-src/ext/dom/document.c
diff -u php-src/ext/dom/document.c:1.51 php-src/ext/dom/document.c:1.52
--- php-src/ext/dom/document.c:1.51     Wed Mar 31 12:18:59 2004
+++ php-src/ext/dom/document.c  Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: document.c,v 1.51 2004/03/31 17:18:59 rrichards Exp $ */
+/* $Id: document.c,v 1.52 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -740,7 +740,7 @@
 
 
 
-/* {{{ proto domelement dom_document_create_element(string tagName);
+/* {{{ proto domelement dom_document_create_element(string tagName [, string value]);
 URL: 
http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-2141741547
 Since: 
 */
@@ -1296,13 +1296,19 @@
        char *encoding, *version = NULL;
        int encoding_len = 0, version_len = 0, refcount;
 
+       php_set_error_handling(EH_THROW, dom_domexception_class_entry TSRMLS_CC);
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|ss", 
&id, dom_document_class_entry, &version, &version_len, &encoding, &encoding_len) == 
FAILURE) {
+               php_std_error_handling();
                return;
        }
 
+       php_std_error_handling();
        docp = xmlNewDoc(version);
-       if (!docp)
+
+       if (!docp) {
+               php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
+       }
 
        if (encoding_len > 0) {
                docp->encoding = (const xmlChar*)xmlStrdup(encoding);
http://cvs.php.net/diff.php/php-src/ext/dom/documentfragment.c?r1=1.9&r2=1.10&ty=u
Index: php-src/ext/dom/documentfragment.c
diff -u php-src/ext/dom/documentfragment.c:1.9 php-src/ext/dom/documentfragment.c:1.10
--- php-src/ext/dom/documentfragment.c:1.9      Thu Apr 29 08:59:22 2004
+++ php-src/ext/dom/documentfragment.c  Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: documentfragment.c,v 1.9 2004/04/29 12:59:22 iliaa Exp $ */
+/* $Id: documentfragment.c,v 1.10 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -48,14 +48,19 @@
        xmlNodePtr nodep = NULL, oldnode = NULL;
        dom_object *intern;
 
+       php_set_error_handling(EH_THROW, dom_domexception_class_entry TSRMLS_CC);
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", 
&id, dom_documentfragment_class_entry) == FAILURE) {
+               php_std_error_handling();
                return;
        }
 
+       php_std_error_handling();
        nodep = xmlNewDocFragment(NULL);
 
-       if (!nodep)
+       if (!nodep) {
+               php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
+       }
 
        intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC);
        if (intern != NULL) {
http://cvs.php.net/diff.php/php-src/ext/dom/dom_fe.h?r1=1.10&r2=1.11&ty=u
Index: php-src/ext/dom/dom_fe.h
diff -u php-src/ext/dom/dom_fe.h:1.10 php-src/ext/dom/dom_fe.h:1.11
--- php-src/ext/dom/dom_fe.h:1.10       Wed Mar 31 12:18:59 2004
+++ php-src/ext/dom/dom_fe.h    Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: dom_fe.h,v 1.10 2004/03/31 17:18:59 rrichards Exp $ */
+/* $Id: dom_fe.h,v 1.11 2004/05/16 10:30:16 rrichards Exp $ */
 #ifndef DOM_FE_H
 #define DOM_FE_H
 
@@ -54,6 +54,8 @@
 
 /* domexception errors */
 typedef enum {
+/* PHP_ERR is non-spec code for PHP errors: */
+       PHP_ERR                        = 0,
        INDEX_SIZE_ERR                 = 1,
        DOMSTRING_SIZE_ERR             = 2,
        HIERARCHY_REQUEST_ERR          = 3,
@@ -64,17 +66,17 @@
        NOT_FOUND_ERR                  = 8,
        NOT_SUPPORTED_ERR              = 9,
        INUSE_ATTRIBUTE_ERR            = 10,
-// Introduced in DOM Level 2:
+/* Introduced in DOM Level 2: */
        INVALID_STATE_ERR              = 11,
-// Introduced in DOM Level 2:
+/* Introduced in DOM Level 2: */
        SYNTAX_ERR                     = 12,
-// Introduced in DOM Level 2:
+/* Introduced in DOM Level 2: */
        INVALID_MODIFICATION_ERR       = 13,
-// Introduced in DOM Level 2:
+/* Introduced in DOM Level 2: */
        NAMESPACE_ERR                  = 14,
-// Introduced in DOM Level 2:
+/* Introduced in DOM Level 2: */
        INVALID_ACCESS_ERR             = 15,
-// Introduced in DOM Level 3:
+/* Introduced in DOM Level 3: */
        VALIDATION_ERR                 = 16
 } dom_exception_code;
 
http://cvs.php.net/diff.php/php-src/ext/dom/element.c?r1=1.27&r2=1.28&ty=u
Index: php-src/ext/dom/element.c
diff -u php-src/ext/dom/element.c:1.27 php-src/ext/dom/element.c:1.28
--- php-src/ext/dom/element.c:1.27      Wed Mar 31 12:18:59 2004
+++ php-src/ext/dom/element.c   Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: element.c,v 1.27 2004/03/31 17:18:59 rrichards Exp $ */
+/* $Id: element.c,v 1.28 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -68,15 +68,19 @@
        char *name, *value = NULL, *uri = NULL;
        char *localname = NULL, *prefix = NULL;
        int errorcode = 0, uri_len = 0;
-       int name_len, value_len = 0;
+       int name_len, value_len = 0, name_valid;
        xmlNsPtr nsptr = NULL;
 
+       php_set_error_handling(EH_THROW, dom_domexception_class_entry TSRMLS_CC);
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), 
"Os|s!s", &id, dom_element_class_entry, &name, &name_len, &value, &value_len, &uri, 
&uri_len) == FAILURE) {
+               php_std_error_handling();
                return;
        }
 
-       if (name_len == 0) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Element name is 
required");
+       php_std_error_handling();
+       name_valid = xmlValidateName((xmlChar *) name, 0);
+       if (name_valid != 0) {
+               php_dom_throw_error(INVALID_CHARACTER_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
        }
 
@@ -98,15 +102,17 @@
                        if (nodep != NULL) {
                                xmlFree(nodep);
                        }
-                       php_dom_throw_error(errorcode, 0 TSRMLS_CC);
+                       php_dom_throw_error(errorcode, 1 TSRMLS_CC);
                        RETURN_FALSE;
                }
        } else {
                nodep = xmlNewNode(NULL, (xmlChar *) name);
        }
 
-       if (!nodep)
+       if (!nodep) {
+               php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
+       }
 
        if (value_len > 0) {
                xmlNodeSetContentLen(nodep, value, value_len);
http://cvs.php.net/diff.php/php-src/ext/dom/entityreference.c?r1=1.8&r2=1.9&ty=u
Index: php-src/ext/dom/entityreference.c
diff -u php-src/ext/dom/entityreference.c:1.8 php-src/ext/dom/entityreference.c:1.9
--- php-src/ext/dom/entityreference.c:1.8       Wed Mar 31 12:18:59 2004
+++ php-src/ext/dom/entityreference.c   Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: entityreference.c,v 1.8 2004/03/31 17:18:59 rrichards Exp $ */
+/* $Id: entityreference.c,v 1.9 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -50,19 +50,24 @@
        char *name;
        int name_len;
 
+       php_set_error_handling(EH_THROW, dom_domexception_class_entry TSRMLS_CC);
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", 
&id, dom_entityreference_class_entry, &name, &name_len) == FAILURE) {
+               php_std_error_handling();
                return;
        }
 
+       php_std_error_handling();
        if (name_len == 0) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Entity Reference name is 
required");
+               php_dom_throw_error(INVALID_CHARACTER_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
        }
 
        node = xmlNewReference(NULL, name);
 
-       if (!node)
+       if (!node) {
+               php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
+       }
 
        intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC);
        if (intern != NULL) {
http://cvs.php.net/diff.php/php-src/ext/dom/php_dom.c?r1=1.57&r2=1.58&ty=u
Index: php-src/ext/dom/php_dom.c
diff -u php-src/ext/dom/php_dom.c:1.57 php-src/ext/dom/php_dom.c:1.58
--- php-src/ext/dom/php_dom.c:1.57      Mon Mar 29 14:28:49 2004
+++ php-src/ext/dom/php_dom.c   Sun May 16 06:30:16 2004
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_dom.c,v 1.57 2004/03/29 19:28:49 helly Exp $ */
+/* $Id: php_dom.c,v 1.58 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -624,7 +624,8 @@
        REGISTER_LONG_CONSTANT("XML_ATTRIBUTE_ENUMERATION",     
XML_ATTRIBUTE_ENUMERATION,      CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("XML_ATTRIBUTE_NOTATION",        
XML_ATTRIBUTE_NOTATION,         CONST_CS | CONST_PERSISTENT);
 
-       /* domException Codes */
+       /* DOMException Codes */
+       REGISTER_LONG_CONSTANT("DOM_PHP_ERR",                           PHP_ERR,       
                         CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("DOM_INDEX_SIZE_ERR",            INDEX_SIZE_ERR,        
         CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("DOMSTRING_SIZE_ERR",            DOMSTRING_SIZE_ERR,    
         CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("DOM_HIERARCHY_REQUEST_ERR",     HIERARCHY_REQUEST_ERR, 
 CONST_CS | CONST_PERSISTENT);
http://cvs.php.net/diff.php/php-src/ext/dom/processinginstruction.c?r1=1.12&r2=1.13&ty=u
Index: php-src/ext/dom/processinginstruction.c
diff -u php-src/ext/dom/processinginstruction.c:1.12 
php-src/ext/dom/processinginstruction.c:1.13
--- php-src/ext/dom/processinginstruction.c:1.12        Wed Mar 31 12:18:59 2004
+++ php-src/ext/dom/processinginstruction.c     Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: processinginstruction.c,v 1.12 2004/03/31 17:18:59 rrichards Exp $ */
+/* $Id: processinginstruction.c,v 1.13 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -50,19 +50,24 @@
        char *name, *value = NULL;
        int name_len, value_len;
 
+       php_set_error_handling(EH_THROW, dom_domexception_class_entry TSRMLS_CC);
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os|s", 
&id, dom_processinginstruction_class_entry, &name, &name_len, &value, &value_len) == 
FAILURE) {
+               php_std_error_handling();
                return;
        }
 
+       php_std_error_handling();
        if (name_len == 0) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "PI name is required");
+               php_dom_throw_error(INVALID_CHARACTER_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
        }
 
        nodep = xmlNewPI((xmlChar *) name, (xmlChar *) value);
 
-       if (!nodep)
+       if (!nodep) {
+               php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
+       }
 
        intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC);
        if (intern != NULL) {
http://cvs.php.net/diff.php/php-src/ext/dom/text.c?r1=1.18&r2=1.19&ty=u
Index: php-src/ext/dom/text.c
diff -u php-src/ext/dom/text.c:1.18 php-src/ext/dom/text.c:1.19
--- php-src/ext/dom/text.c:1.18 Wed Mar 31 12:18:59 2004
+++ php-src/ext/dom/text.c      Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: text.c,v 1.18 2004/03/31 17:18:59 rrichards Exp $ */
+/* $Id: text.c,v 1.19 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -53,14 +53,19 @@
        char *value = NULL;
        int value_len;
 
+       php_set_error_handling(EH_THROW, dom_domexception_class_entry TSRMLS_CC);
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|s", 
&id, dom_text_class_entry, &value, &value_len) == FAILURE) {
+               php_std_error_handling();
                return;
        }
 
+       php_std_error_handling();
        nodep = xmlNewText((xmlChar *) value);
 
-       if (!nodep)
+       if (!nodep) {
+               php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
+       }
 
        intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC);
        if (intern != NULL) {
http://cvs.php.net/diff.php/php-src/ext/dom/xpath.c?r1=1.20&r2=1.21&ty=u
Index: php-src/ext/dom/xpath.c
diff -u php-src/ext/dom/xpath.c:1.20 php-src/ext/dom/xpath.c:1.21
--- php-src/ext/dom/xpath.c:1.20        Tue Apr  6 14:26:19 2004
+++ php-src/ext/dom/xpath.c     Sun May 16 06:30:16 2004
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: xpath.c,v 1.20 2004/04/06 18:26:19 rrichards Exp $ */
+/* $Id: xpath.c,v 1.21 2004/05/16 10:30:16 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -49,14 +49,18 @@
        dom_object *docobj, *intern;
        xmlXPathContextPtr ctx, oldctx;
 
+       php_set_error_handling(EH_THROW, dom_domexception_class_entry TSRMLS_CC);
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "OO", 
&id, dom_xpath_class_entry, &doc, dom_document_class_entry) == FAILURE) {
+               php_std_error_handling();
                return;
        }
 
+       php_std_error_handling();
        DOM_GET_OBJ(docp, doc, xmlDocPtr, docobj);
 
        ctx = xmlXPathNewContext(docp);
        if (ctx == NULL) {
+               php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC);
                RETURN_FALSE;
        }
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to