Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Raise the limit of maximum number of different xml namespace declarations within an xml document. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | more-xml-ns |
Files: | files | file ages | folders |
SHA1: |
a689b0c326c503da3d86628bb73d7012 |
User & Date: | rolf 2013-08-28 12:50:32 |
Context
2013-08-29
| ||
14:44 | Added configure switch to build tdom with the old (much smaller) limit of different XML namespace declarations within one document while building a dom tree (and restore the old lesser memory demands). Closed-Leaf check-in: dd4f2b0aae user: rolf tags: more-xml-ns | |
2013-08-28
| ||
12:50 | Raise the limit of maximum number of different xml namespace declarations within an xml document. check-in: a689b0c326 user: rolf tags: more-xml-ns | |
2013-08-17
| ||
12:49 | Noted the TEA update in CHANGES. Declared Changelog as obsolete. check-in: 6c1a36e58f user: rolf tags: trunk | |
Changes
Changes to generic/dom.c.
795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 ... 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 ... 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 .... 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 .... 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 .... 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 .... 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 |
domNS *ns = NULL; DBG(fprintf(stderr, "domNewNamespace '%s' --> '%s' \n", prefix, namespaceURI);) ns = domLookupNamespace (doc, prefix, namespaceURI); if (ns != NULL) return ns; doc->nsptr++; if (doc->nsptr > 254) { DBG(fprintf (stderr, "maximum number of namespaces exceeded!!!\n");) domPanic("domNewNamespace: maximum number of namespaces exceeded!"); } if (doc->nsptr >= doc->nslen) { doc->namespaces = (domNS**) REALLOC ((char*) doc->namespaces, sizeof (domNS*) * 2 * doc->nslen); doc->nslen *= 2; } doc->namespaces[doc->nsptr] = (domNS*)MALLOC (sizeof (domNS)); ns = doc->namespaces[doc->nsptr]; ................................................................................ domNamespaceURI ( domNode *node ) { domAttrNode *attr; domNS *ns; if (!node->namespace) return NULL; if (node->nodeType == ATTRIBUTE_NODE) { attr = (domAttrNode*)node; if (attr->nodeFlags & IS_NS_NODE) return NULL; ns = attr->parentNode->ownerDocument->namespaces[attr->namespace-1]; } else if (node->nodeType == ELEMENT_NODE) { ns = node->ownerDocument->namespaces[node->namespace-1]; } else { return NULL; } return ns->uri; } ................................................................................ domNamespacePrefix ( domNode *node ) { domAttrNode *attr; domNS *ns; if (!node->namespace) return NULL; if (node->nodeType == ATTRIBUTE_NODE) { attr = (domAttrNode*)node; ns = attr->parentNode->ownerDocument->namespaces[attr->namespace-1]; } else if (node->nodeType == ELEMENT_NODE) { ns = node->ownerDocument->namespaces[node->namespace-1]; } else { return NULL; } if (ns) return ns->prefix; return NULL; } ................................................................................ + sizeof(domLineColumn)); } else { node = (domTextNode*) domAlloc(sizeof(domTextNode)); } memset(node, 0, sizeof(domTextNode)); node->nodeType = TEXT_NODE; node->nodeFlags = 0; node->namespace = 0; node->nodeNumber = NODE_NO(info->document); node->valueLength = len; node->nodeValue = (char*)MALLOC(len); memmove(node->nodeValue, s, len); node->ownerDocument = info->document; node->parentNode = parentNode; ................................................................................ + sizeof(domLineColumn)); } else { node = (domTextNode*) domAlloc(sizeof(domTextNode)); } memset(node, 0, sizeof(domTextNode)); node->nodeType = COMMENT_NODE; node->nodeFlags = 0; node->namespace = 0; node->nodeNumber = NODE_NO(info->document); node->valueLength = len; node->nodeValue = (char*)MALLOC(len); memmove(node->nodeValue, s, len); node->ownerDocument = info->document; node->parentNode = parentNode; ................................................................................ { domTextNode *node; node = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(node, 0, sizeof(domTextNode)); node->nodeType = nodeType; node->nodeFlags = 0; node->namespace = 0; node->nodeNumber = NODE_NO(doc); node->ownerDocument = doc; node->valueLength = length; node->nodeValue = (char*)MALLOC(length); memmove(node->nodeValue, value, length); if (doc->fragments) { ................................................................................ node = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(node, 0, sizeof(domTextNode)); node->nodeType = nodeType; node->nodeFlags = 0; if (disableOutputEscaping) { node->nodeFlags |= DISABLE_OUTPUT_ESCAPING; } node->namespace = 0; node->nodeNumber = NODE_NO(parent->ownerDocument); node->ownerDocument = parent->ownerDocument; node->valueLength = length; node->nodeValue = (char*)MALLOC(length); memmove(node->nodeValue, value, length); if (parent->lastChild) { |
> > < > > < > > < < < < |
795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 ... 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 ... 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 .... 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 .... 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 .... 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 .... 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 |
domNS *ns = NULL; DBG(fprintf(stderr, "domNewNamespace '%s' --> '%s' \n", prefix, namespaceURI);) ns = domLookupNamespace (doc, prefix, namespaceURI); if (ns != NULL) return ns; doc->nsptr++; #ifdef TDOM_LESS_NS if (doc->nsptr > 254) { DBG(fprintf (stderr, "maximum number of namespaces exceeded!!!\n");) domPanic("domNewNamespace: maximum number of namespaces exceeded!"); } #endif if (doc->nsptr >= doc->nslen) { doc->namespaces = (domNS**) REALLOC ((char*) doc->namespaces, sizeof (domNS*) * 2 * doc->nslen); doc->nslen *= 2; } doc->namespaces[doc->nsptr] = (domNS*)MALLOC (sizeof (domNS)); ns = doc->namespaces[doc->nsptr]; ................................................................................ domNamespaceURI ( domNode *node ) { domAttrNode *attr; domNS *ns; if (node->nodeType == ATTRIBUTE_NODE) { attr = (domAttrNode*)node; if (!attr->namespace) return NULL; if (attr->nodeFlags & IS_NS_NODE) return NULL; ns = attr->parentNode->ownerDocument->namespaces[attr->namespace-1]; } else if (node->nodeType == ELEMENT_NODE) { if (!node->namespace) return NULL; ns = node->ownerDocument->namespaces[node->namespace-1]; } else { return NULL; } return ns->uri; } ................................................................................ domNamespacePrefix ( domNode *node ) { domAttrNode *attr; domNS *ns; if (node->nodeType == ATTRIBUTE_NODE) { attr = (domAttrNode*)node; if (!attr->namespace) return NULL; ns = attr->parentNode->ownerDocument->namespaces[attr->namespace-1]; } else if (node->nodeType == ELEMENT_NODE) { if (!node->namespace) return NULL; ns = node->ownerDocument->namespaces[node->namespace-1]; } else { return NULL; } if (ns) return ns->prefix; return NULL; } ................................................................................ + sizeof(domLineColumn)); } else { node = (domTextNode*) domAlloc(sizeof(domTextNode)); } memset(node, 0, sizeof(domTextNode)); node->nodeType = TEXT_NODE; node->nodeFlags = 0; node->nodeNumber = NODE_NO(info->document); node->valueLength = len; node->nodeValue = (char*)MALLOC(len); memmove(node->nodeValue, s, len); node->ownerDocument = info->document; node->parentNode = parentNode; ................................................................................ + sizeof(domLineColumn)); } else { node = (domTextNode*) domAlloc(sizeof(domTextNode)); } memset(node, 0, sizeof(domTextNode)); node->nodeType = COMMENT_NODE; node->nodeFlags = 0; node->nodeNumber = NODE_NO(info->document); node->valueLength = len; node->nodeValue = (char*)MALLOC(len); memmove(node->nodeValue, s, len); node->ownerDocument = info->document; node->parentNode = parentNode; ................................................................................ { domTextNode *node; node = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(node, 0, sizeof(domTextNode)); node->nodeType = nodeType; node->nodeFlags = 0; node->nodeNumber = NODE_NO(doc); node->ownerDocument = doc; node->valueLength = length; node->nodeValue = (char*)MALLOC(length); memmove(node->nodeValue, value, length); if (doc->fragments) { ................................................................................ node = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(node, 0, sizeof(domTextNode)); node->nodeType = nodeType; node->nodeFlags = 0; if (disableOutputEscaping) { node->nodeFlags |= DISABLE_OUTPUT_ESCAPING; } node->nodeNumber = NODE_NO(parent->ownerDocument); node->ownerDocument = parent->ownerDocument; node->valueLength = length; node->nodeValue = (char*)MALLOC(length); memmove(node->nodeValue, value, length); if (parent->lastChild) { |
Changes to generic/dom.h.
580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 ... 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 ... 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 ... 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 |
| domNode | \-------------------------------------------------------------------------*/ typedef struct domNode { domNodeType nodeType : 8; domNodeFlags nodeFlags : 8; domNameSpaceIndex namespace : 8; unsigned int info : 8; unsigned int nodeNumber; domDocument *ownerDocument; struct domNode *parentNode; struct domNode *previousSibling; struct domNode *nextSibling; domString nodeName; /* now the element node specific fields */ struct domNode *firstChild; struct domNode *lastChild; #ifdef TCL_THREADS struct domNode *nextDeleted; #endif struct domAttrNode *firstAttr; ................................................................................ | domTextNode | \-------------------------------------------------------------------------*/ typedef struct domTextNode { domNodeType nodeType : 8; domNodeFlags nodeFlags : 8; domNameSpaceIndex namespace : 8; unsigned int info : 8; unsigned int nodeNumber; domDocument *ownerDocument; struct domNode *parentNode; struct domNode *previousSibling; struct domNode *nextSibling; domString nodeValue; /* now the text node specific fields */ ................................................................................ | domProcessingInstructionNode | \-------------------------------------------------------------------------*/ typedef struct domProcessingInstructionNode { domNodeType nodeType : 8; domNodeFlags nodeFlags : 8; domNameSpaceIndex namespace : 8; unsigned int info : 8; unsigned int nodeNumber; domDocument *ownerDocument; struct domNode *parentNode; struct domNode *previousSibling; struct domNode *nextSibling; domString targetValue; /* now the pi specific fields */ int targetLength; domString dataValue; int dataLength; } domProcessingInstructionNode; /*-------------------------------------------------------------------------- ................................................................................ | domAttrNode | \-------------------------------------------------------------------------*/ typedef struct domAttrNode { domNodeType nodeType : 8; domAttrFlags nodeFlags : 8; domNameSpaceIndex namespace : 8; unsigned int info : 8; domString nodeName; domString nodeValue; int valueLength; struct domNode *parentNode; struct domAttrNode *nextSibling; } domAttrNode; |
> > > > > > > > > > > > > > > > > > > > > > > > > > > |
580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 ... 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 ... 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 ... 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 |
| domNode | \-------------------------------------------------------------------------*/ typedef struct domNode { domNodeType nodeType : 8; domNodeFlags nodeFlags : 8; #ifdef TDOM_LESS_NS domNameSpaceIndex namespace : 8; unsigned int info : 8; #else unsigned int dummy : 8; unsigned int info : 8; #endif unsigned int nodeNumber; domDocument *ownerDocument; struct domNode *parentNode; struct domNode *previousSibling; struct domNode *nextSibling; domString nodeName; /* now the element node specific fields */ #ifndef TDOM_LESS_NS domNameSpaceIndex namespace; #endif struct domNode *firstChild; struct domNode *lastChild; #ifdef TCL_THREADS struct domNode *nextDeleted; #endif struct domAttrNode *firstAttr; ................................................................................ | domTextNode | \-------------------------------------------------------------------------*/ typedef struct domTextNode { domNodeType nodeType : 8; domNodeFlags nodeFlags : 8; #ifdef TDOM_LESS_NS domNameSpaceIndex namespace : 8; unsigned int info : 8; #else unsigned int dummy : 8; unsigned int info : 8; #endif unsigned int nodeNumber; domDocument *ownerDocument; struct domNode *parentNode; struct domNode *previousSibling; struct domNode *nextSibling; domString nodeValue; /* now the text node specific fields */ ................................................................................ | domProcessingInstructionNode | \-------------------------------------------------------------------------*/ typedef struct domProcessingInstructionNode { domNodeType nodeType : 8; domNodeFlags nodeFlags : 8; #ifdef TDOM_LESS_NS domNameSpaceIndex namespace : 8; unsigned int info : 8; #else unsigned int dummy : 8; unsigned int info : 8; #endif unsigned int nodeNumber; domDocument *ownerDocument; struct domNode *parentNode; struct domNode *previousSibling; struct domNode *nextSibling; domString targetValue; /* now the pi specific fields */ int targetLength; #ifndef TDOM_LESS_NS domNameSpaceIndex namespace; #endif domString dataValue; int dataLength; } domProcessingInstructionNode; /*-------------------------------------------------------------------------- ................................................................................ | domAttrNode | \-------------------------------------------------------------------------*/ typedef struct domAttrNode { domNodeType nodeType : 8; domAttrFlags nodeFlags : 8; #ifdef TDOM_LESS_NS domNameSpaceIndex namespace : 8; unsigned int info : 8; #else unsigned int dummy : 8; unsigned int info : 8; domNameSpaceIndex namespace; #endif domString nodeName; domString nodeValue; int valueLength; struct domNode *parentNode; struct domAttrNode *nextSibling; } domAttrNode; |
Changes to generic/domhtml.c.
740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 ... 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 .... 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 .... 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 |
/*-------------------------------------------------------- | allocate new TEXT node \-------------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->nodeFlags = 0; tnode->namespace = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->valueLength = (x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; DBG(fprintf(stderr, "New text node: '%s'\n", tnode->nodeValue);) ................................................................................ /*---------------------------------------------------- | allocate new COMMENT node for comments \---------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = COMMENT_NODE; tnode->nodeFlags = 0; tnode->namespace = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; tnode->valueLength = x - start - 4; tnode->nodeValue = (char*)MALLOC(tnode->valueLength+1); memmove(tnode->nodeValue, start+4, tnode->valueLength); *(tnode->nodeValue + tnode->valueLength) = 0; ................................................................................ /*---------------------------------------------------- | allocate new TEXT node for CDATA section data \---------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->nodeFlags = 0; tnode->namespace = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; tnode->valueLength = (x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; ................................................................................ /*---------------------------------------------------- | allocate new TEXT node for style/script data \---------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->nodeFlags = 0; tnode->namespace = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = node; tnode->valueLength = (x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; |
< < < < |
740 741 742 743 744 745 746 747 748 749 750 751 752 753 ... 947 948 949 950 951 952 953 954 955 956 957 958 959 960 .... 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 .... 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 |
/*-------------------------------------------------------- | allocate new TEXT node \-------------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->nodeFlags = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->valueLength = (x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; DBG(fprintf(stderr, "New text node: '%s'\n", tnode->nodeValue);) ................................................................................ /*---------------------------------------------------- | allocate new COMMENT node for comments \---------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = COMMENT_NODE; tnode->nodeFlags = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; tnode->valueLength = x - start - 4; tnode->nodeValue = (char*)MALLOC(tnode->valueLength+1); memmove(tnode->nodeValue, start+4, tnode->valueLength); *(tnode->nodeValue + tnode->valueLength) = 0; ................................................................................ /*---------------------------------------------------- | allocate new TEXT node for CDATA section data \---------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->nodeFlags = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; tnode->valueLength = (x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; ................................................................................ /*---------------------------------------------------- | allocate new TEXT node for style/script data \---------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->nodeFlags = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = node; tnode->valueLength = (x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; |
Changes to generic/xmlsimple.c.
444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 ... 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 ... 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 |
/*-------------------------------------------------------- | allocate new TEXT node \-------------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->nodeFlags = 0; tnode->namespace = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->valueLength = (x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; if (ampersandSeen) { ................................................................................ /*---------------------------------------------------- | allocate new COMMENT node for comments \---------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = COMMENT_NODE; tnode->nodeFlags = 0; tnode->namespace = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; tnode->valueLength = x - start - 4; tnode->nodeValue = (char*)MALLOC(tnode->valueLength+1); memmove(tnode->nodeValue, start+4, tnode->valueLength); *(tnode->nodeValue + tnode->valueLength) = 0; ................................................................................ /*---------------------------------------------------- | allocate new TEXT node for CDATA section data \---------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->nodeFlags = 0; tnode->namespace = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; tnode->valueLength = (x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; |
< < < |
444 445 446 447 448 449 450 451 452 453 454 455 456 457 ... 530 531 532 533 534 535 536 537 538 539 540 541 542 543 ... 609 610 611 612 613 614 615 616 617 618 619 620 621 622 |
/*-------------------------------------------------------- | allocate new TEXT node \-------------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->nodeFlags = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->valueLength = (x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; if (ampersandSeen) { ................................................................................ /*---------------------------------------------------- | allocate new COMMENT node for comments \---------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = COMMENT_NODE; tnode->nodeFlags = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; tnode->valueLength = x - start - 4; tnode->nodeValue = (char*)MALLOC(tnode->valueLength+1); memmove(tnode->nodeValue, start+4, tnode->valueLength); *(tnode->nodeValue + tnode->valueLength) = 0; ................................................................................ /*---------------------------------------------------- | allocate new TEXT node for CDATA section data \---------------------------------------------------*/ tnode = (domTextNode*) domAlloc(sizeof(domTextNode)); memset(tnode, 0, sizeof(domTextNode)); tnode->nodeType = TEXT_NODE; tnode->nodeFlags = 0; tnode->ownerDocument = doc; tnode->nodeNumber = NODE_NO(doc); tnode->parentNode = parent_node; tnode->valueLength = (x - start); tnode->nodeValue = (char*)MALLOC((x - start)+1); memmove(tnode->nodeValue, start, (x - start)); *(tnode->nodeValue + (x - start)) = 0; |