nokolexbor 0.2.5 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/nokolexbor/CMakeLists.txt +7 -4
- data/ext/nokolexbor/config.h.cmake.in +2 -0
- data/ext/nokolexbor/extconf.rb +47 -25
- data/ext/nokolexbor/libxml/SAX2.h +4 -4
- data/ext/nokolexbor/libxml/chvalid.h +21 -21
- data/ext/nokolexbor/libxml/dict.h +13 -13
- data/ext/nokolexbor/libxml/globals.h +202 -202
- data/ext/nokolexbor/libxml/hash.h +25 -25
- data/ext/nokolexbor/libxml/parser.h +5 -5
- data/ext/nokolexbor/libxml/parserInternals.h +4 -4
- data/ext/nokolexbor/libxml/pattern.h +14 -14
- data/ext/nokolexbor/libxml/threads.h +15 -15
- data/ext/nokolexbor/libxml/tree.h +5 -5
- data/ext/nokolexbor/libxml/xmlerror.h +5 -5
- data/ext/nokolexbor/libxml/xmlmemory.h +16 -16
- data/ext/nokolexbor/libxml/xmlstring.h +30 -30
- data/ext/nokolexbor/libxml/xpath.h +43 -43
- data/ext/nokolexbor/libxml/xpathInternals.h +128 -128
- data/ext/nokolexbor/memory.c +6 -6
- data/ext/nokolexbor/nl_cdata.c +44 -0
- data/ext/nokolexbor/nl_comment.c +44 -0
- data/ext/nokolexbor/nl_document.c +23 -9
- data/ext/nokolexbor/nl_node.c +191 -178
- data/ext/nokolexbor/nl_node_set.c +38 -73
- data/ext/nokolexbor/nl_text.c +44 -0
- data/ext/nokolexbor/nl_xpath_context.c +33 -42
- data/ext/nokolexbor/nokolexbor.c +7 -3
- data/ext/nokolexbor/nokolexbor.h +9 -7
- data/ext/nokolexbor/private/buf.h +1 -1
- data/ext/nokolexbor/private/error.h +3 -3
- data/ext/nokolexbor/xml_SAX2.c +8 -8
- data/ext/nokolexbor/xml_buf.c +19 -19
- data/ext/nokolexbor/xml_chvalid.c +25 -25
- data/ext/nokolexbor/xml_dict.c +69 -69
- data/ext/nokolexbor/xml_encoding.c +2 -2
- data/ext/nokolexbor/xml_error.c +51 -51
- data/ext/nokolexbor/xml_globals.c +329 -329
- data/ext/nokolexbor/xml_hash.c +131 -131
- data/ext/nokolexbor/xml_memory.c +25 -25
- data/ext/nokolexbor/xml_parser.c +3 -3
- data/ext/nokolexbor/xml_parserInternals.c +15 -15
- data/ext/nokolexbor/xml_pattern.c +103 -103
- data/ext/nokolexbor/xml_string.c +93 -93
- data/ext/nokolexbor/xml_threads.c +61 -61
- data/ext/nokolexbor/xml_tree.c +12 -12
- data/ext/nokolexbor/xml_xpath.c +1194 -1203
- data/lib/nokolexbor/document.rb +92 -1
- data/lib/nokolexbor/node.rb +64 -0
- data/lib/nokolexbor/node_set.rb +6 -5
- data/lib/nokolexbor/version.rb +1 -1
- data/lib/nokolexbor.rb +21 -1
- data/patches/0001-lexbor-support-text-pseudo-element.patch +1 -1
- metadata +7 -4
data/ext/nokolexbor/xml_dict.c
CHANGED
@@ -142,12 +142,12 @@ static unsigned int rand_seed = 0;
|
|
142
142
|
#endif
|
143
143
|
|
144
144
|
/**
|
145
|
-
*
|
145
|
+
* nl_xmlInitializeDict:
|
146
146
|
*
|
147
|
-
* DEPRECATED: Alias for
|
147
|
+
* DEPRECATED: Alias for nl_xmlInitParser.
|
148
148
|
*/
|
149
|
-
int
|
150
|
-
|
149
|
+
int nl_xmlInitializeDict(void) {
|
150
|
+
nl_xmlInitParser();
|
151
151
|
return(0);
|
152
152
|
}
|
153
153
|
|
@@ -175,19 +175,19 @@ int __xmlInitializeDict(void) {
|
|
175
175
|
int __xmlRandom(void) {
|
176
176
|
int ret;
|
177
177
|
|
178
|
-
|
178
|
+
nl_xmlMutexLock(&xmlDictMutex);
|
179
179
|
#ifdef HAVE_RAND_R
|
180
180
|
ret = rand_r(& rand_seed);
|
181
181
|
#else
|
182
182
|
ret = rand();
|
183
183
|
#endif
|
184
|
-
|
184
|
+
nl_xmlMutexUnlock(&xmlDictMutex);
|
185
185
|
return(ret);
|
186
186
|
}
|
187
187
|
#endif
|
188
188
|
|
189
189
|
/**
|
190
|
-
*
|
190
|
+
* nl_xmlDictCleanup:
|
191
191
|
*
|
192
192
|
* DEPRECATED: This function is a no-op. Call xmlCleanupParser
|
193
193
|
* to free global state but see the warnings there. xmlCleanupParser
|
@@ -195,7 +195,7 @@ int __xmlRandom(void) {
|
|
195
195
|
* have call cleanup functions at all.
|
196
196
|
*/
|
197
197
|
void
|
198
|
-
|
198
|
+
nl_xmlDictCleanup(void) {
|
199
199
|
}
|
200
200
|
|
201
201
|
/**
|
@@ -248,7 +248,7 @@ xmlDictAddString(xmlDictPtr dict, const xmlChar *name, unsigned int namelen) {
|
|
248
248
|
else size *= 4; /* exponential growth */
|
249
249
|
if (size < 4 * namelen)
|
250
250
|
size = 4 * namelen; /* just in case ! */
|
251
|
-
pool = (xmlDictStringsPtr)
|
251
|
+
pool = (xmlDictStringsPtr) nl_xmlMalloc(sizeof(xmlDictStrings) + size);
|
252
252
|
if (pool == NULL)
|
253
253
|
return(NULL);
|
254
254
|
pool->size = size;
|
@@ -316,7 +316,7 @@ xmlDictAddQString(xmlDictPtr dict, const xmlChar *prefix, unsigned int plen,
|
|
316
316
|
else size *= 4; /* exponential growth */
|
317
317
|
if (size < 4 * (namelen + plen + 1))
|
318
318
|
size = 4 * (namelen + plen + 1); /* just in case ! */
|
319
|
-
pool = (xmlDictStringsPtr)
|
319
|
+
pool = (xmlDictStringsPtr) nl_xmlMalloc(sizeof(xmlDictStrings) + size);
|
320
320
|
if (pool == NULL)
|
321
321
|
return(NULL);
|
322
322
|
pool->size = size;
|
@@ -545,30 +545,30 @@ xmlDictComputeFastQKey(const xmlChar *prefix, int plen,
|
|
545
545
|
}
|
546
546
|
|
547
547
|
/**
|
548
|
-
*
|
548
|
+
* nl_xmlDictCreate:
|
549
549
|
*
|
550
550
|
* Create a new dictionary
|
551
551
|
*
|
552
552
|
* Returns the newly created dictionary, or NULL if an error occurred.
|
553
553
|
*/
|
554
554
|
xmlDictPtr
|
555
|
-
|
555
|
+
nl_xmlDictCreate(void) {
|
556
556
|
xmlDictPtr dict;
|
557
557
|
|
558
|
-
|
558
|
+
nl_xmlInitParser();
|
559
559
|
|
560
560
|
#ifdef DICT_DEBUG_PATTERNS
|
561
561
|
fprintf(stderr, "C");
|
562
562
|
#endif
|
563
563
|
|
564
|
-
dict =
|
564
|
+
dict = nl_xmlMalloc(sizeof(xmlDict));
|
565
565
|
if (dict) {
|
566
566
|
dict->ref_counter = 1;
|
567
567
|
dict->limit = 0;
|
568
568
|
|
569
569
|
dict->size = MIN_DICT_SIZE;
|
570
570
|
dict->nbElems = 0;
|
571
|
-
dict->dict =
|
571
|
+
dict->dict = nl_xmlMalloc(MIN_DICT_SIZE * sizeof(xmlDictEntry));
|
572
572
|
dict->strings = NULL;
|
573
573
|
dict->subdict = NULL;
|
574
574
|
if (dict->dict) {
|
@@ -580,13 +580,13 @@ xmlDictCreate(void) {
|
|
580
580
|
#endif
|
581
581
|
return(dict);
|
582
582
|
}
|
583
|
-
|
583
|
+
nl_xmlFree(dict);
|
584
584
|
}
|
585
585
|
return(NULL);
|
586
586
|
}
|
587
587
|
|
588
588
|
/**
|
589
|
-
*
|
589
|
+
* nl_xmlDictCreateSub:
|
590
590
|
* @sub: an existing dictionary
|
591
591
|
*
|
592
592
|
* Create a new dictionary, inheriting strings from the read-only
|
@@ -597,8 +597,8 @@ xmlDictCreate(void) {
|
|
597
597
|
* Returns the newly created dictionary, or NULL if an error occurred.
|
598
598
|
*/
|
599
599
|
xmlDictPtr
|
600
|
-
|
601
|
-
xmlDictPtr dict =
|
600
|
+
nl_xmlDictCreateSub(xmlDictPtr sub) {
|
601
|
+
xmlDictPtr dict = nl_xmlDictCreate();
|
602
602
|
|
603
603
|
if ((dict != NULL) && (sub != NULL)) {
|
604
604
|
#ifdef DICT_DEBUG_PATTERNS
|
@@ -606,13 +606,13 @@ xmlDictCreateSub(xmlDictPtr sub) {
|
|
606
606
|
#endif
|
607
607
|
dict->seed = sub->seed;
|
608
608
|
dict->subdict = sub;
|
609
|
-
|
609
|
+
nl_xmlDictReference(dict->subdict);
|
610
610
|
}
|
611
611
|
return(dict);
|
612
612
|
}
|
613
613
|
|
614
614
|
/**
|
615
|
-
*
|
615
|
+
* nl_xmlDictReference:
|
616
616
|
* @dict: the dictionary
|
617
617
|
*
|
618
618
|
* Increment the reference counter of a dictionary
|
@@ -620,11 +620,11 @@ xmlDictCreateSub(xmlDictPtr sub) {
|
|
620
620
|
* Returns 0 in case of success and -1 in case of error
|
621
621
|
*/
|
622
622
|
int
|
623
|
-
|
623
|
+
nl_xmlDictReference(xmlDictPtr dict) {
|
624
624
|
if (dict == NULL) return -1;
|
625
|
-
|
625
|
+
nl_xmlMutexLock(&xmlDictMutex);
|
626
626
|
dict->ref_counter++;
|
627
|
-
|
627
|
+
nl_xmlMutexUnlock(&xmlDictMutex);
|
628
628
|
return(0);
|
629
629
|
}
|
630
630
|
|
@@ -667,7 +667,7 @@ xmlDictGrow(xmlDictPtr dict, size_t size) {
|
|
667
667
|
if (oldsize == MIN_DICT_SIZE)
|
668
668
|
keep_keys = 0;
|
669
669
|
|
670
|
-
dict->dict =
|
670
|
+
dict->dict = nl_xmlMalloc(size * sizeof(xmlDictEntry));
|
671
671
|
if (dict->dict == NULL) {
|
672
672
|
dict->dict = olddict;
|
673
673
|
return(-1);
|
@@ -698,7 +698,7 @@ xmlDictGrow(xmlDictPtr dict, size_t size) {
|
|
698
698
|
} else {
|
699
699
|
xmlDictEntryPtr entry;
|
700
700
|
|
701
|
-
entry =
|
701
|
+
entry = nl_xmlMalloc(sizeof(xmlDictEntry));
|
702
702
|
if (entry != NULL) {
|
703
703
|
entry->name = olddict[i].name;
|
704
704
|
entry->len = olddict[i].len;
|
@@ -738,7 +738,7 @@ xmlDictGrow(xmlDictPtr dict, size_t size) {
|
|
738
738
|
dict->dict[key].next = NULL;
|
739
739
|
dict->dict[key].valid = 1;
|
740
740
|
dict->dict[key].okey = okey;
|
741
|
-
|
741
|
+
nl_xmlFree(iter);
|
742
742
|
} else {
|
743
743
|
iter->next = dict->dict[key].next;
|
744
744
|
iter->okey = okey;
|
@@ -753,10 +753,10 @@ xmlDictGrow(xmlDictPtr dict, size_t size) {
|
|
753
753
|
}
|
754
754
|
}
|
755
755
|
|
756
|
-
|
756
|
+
nl_xmlFree(olddict);
|
757
757
|
|
758
758
|
#ifdef DEBUG_GROW
|
759
|
-
|
759
|
+
nl_xmlGenericError(nl_xmlGenericErrorContext,
|
760
760
|
"xmlDictGrow : from %lu to %lu, %u elems\n", oldsize, size, nbElem);
|
761
761
|
#endif
|
762
762
|
|
@@ -764,14 +764,14 @@ xmlDictGrow(xmlDictPtr dict, size_t size) {
|
|
764
764
|
}
|
765
765
|
|
766
766
|
/**
|
767
|
-
*
|
767
|
+
* nl_xmlDictFree:
|
768
768
|
* @dict: the dictionary
|
769
769
|
*
|
770
770
|
* Free the hash @dict and its contents. The userdata is
|
771
771
|
* deallocated with @f if provided.
|
772
772
|
*/
|
773
773
|
void
|
774
|
-
|
774
|
+
nl_xmlDictFree(xmlDictPtr dict) {
|
775
775
|
size_t i;
|
776
776
|
xmlDictEntryPtr iter;
|
777
777
|
xmlDictEntryPtr next;
|
@@ -782,17 +782,17 @@ xmlDictFree(xmlDictPtr dict) {
|
|
782
782
|
return;
|
783
783
|
|
784
784
|
/* decrement the counter, it may be shared by a parser and docs */
|
785
|
-
|
785
|
+
nl_xmlMutexLock(&xmlDictMutex);
|
786
786
|
dict->ref_counter--;
|
787
787
|
if (dict->ref_counter > 0) {
|
788
|
-
|
788
|
+
nl_xmlMutexUnlock(&xmlDictMutex);
|
789
789
|
return;
|
790
790
|
}
|
791
791
|
|
792
|
-
|
792
|
+
nl_xmlMutexUnlock(&xmlDictMutex);
|
793
793
|
|
794
794
|
if (dict->subdict != NULL) {
|
795
|
-
|
795
|
+
nl_xmlDictFree(dict->subdict);
|
796
796
|
}
|
797
797
|
|
798
798
|
if (dict->dict) {
|
@@ -804,25 +804,25 @@ xmlDictFree(xmlDictPtr dict) {
|
|
804
804
|
while (iter) {
|
805
805
|
next = iter->next;
|
806
806
|
if (!inside_dict)
|
807
|
-
|
807
|
+
nl_xmlFree(iter);
|
808
808
|
dict->nbElems--;
|
809
809
|
inside_dict = 0;
|
810
810
|
iter = next;
|
811
811
|
}
|
812
812
|
}
|
813
|
-
|
813
|
+
nl_xmlFree(dict->dict);
|
814
814
|
}
|
815
815
|
pool = dict->strings;
|
816
816
|
while (pool != NULL) {
|
817
817
|
nextp = pool->next;
|
818
|
-
|
818
|
+
nl_xmlFree(pool);
|
819
819
|
pool = nextp;
|
820
820
|
}
|
821
|
-
|
821
|
+
nl_xmlFree(dict);
|
822
822
|
}
|
823
823
|
|
824
824
|
/**
|
825
|
-
*
|
825
|
+
* nl_xmlDictLookup:
|
826
826
|
* @dict: the dictionary
|
827
827
|
* @name: the name of the userdata
|
828
828
|
* @len: the length of the name, if -1 it is recomputed
|
@@ -832,7 +832,7 @@ xmlDictFree(xmlDictPtr dict) {
|
|
832
832
|
* Returns the internal copy of the name or NULL in case of internal error
|
833
833
|
*/
|
834
834
|
const xmlChar *
|
835
|
-
|
835
|
+
nl_xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) {
|
836
836
|
unsigned long key, okey, nbi = 0;
|
837
837
|
xmlDictEntryPtr entry;
|
838
838
|
xmlDictEntryPtr insert;
|
@@ -868,7 +868,7 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
868
868
|
}
|
869
869
|
#else
|
870
870
|
if ((insert->okey == okey) && (insert->len == l) &&
|
871
|
-
(!
|
871
|
+
(!nl_xmlStrncmp(insert->name, name, l)))
|
872
872
|
return(insert->name);
|
873
873
|
#endif
|
874
874
|
nbi++;
|
@@ -880,7 +880,7 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
880
880
|
}
|
881
881
|
#else
|
882
882
|
if ((insert->okey == okey) && (insert->len == l) &&
|
883
|
-
(!
|
883
|
+
(!nl_xmlStrncmp(insert->name, name, l)))
|
884
884
|
return(insert->name);
|
885
885
|
#endif
|
886
886
|
}
|
@@ -910,7 +910,7 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
910
910
|
}
|
911
911
|
#else
|
912
912
|
if ((tmp->okey == skey) && (tmp->len == l) &&
|
913
|
-
(!
|
913
|
+
(!nl_xmlStrncmp(tmp->name, name, l)))
|
914
914
|
return(tmp->name);
|
915
915
|
#endif
|
916
916
|
nbi++;
|
@@ -922,7 +922,7 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
922
922
|
}
|
923
923
|
#else
|
924
924
|
if ((tmp->okey == skey) && (tmp->len == l) &&
|
925
|
-
(!
|
925
|
+
(!nl_xmlStrncmp(tmp->name, name, l)))
|
926
926
|
return(tmp->name);
|
927
927
|
#endif
|
928
928
|
}
|
@@ -935,7 +935,7 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
935
935
|
if (insert == NULL) {
|
936
936
|
entry = &(dict->dict[key]);
|
937
937
|
} else {
|
938
|
-
entry =
|
938
|
+
entry = nl_xmlMalloc(sizeof(xmlDictEntry));
|
939
939
|
if (entry == NULL)
|
940
940
|
return(NULL);
|
941
941
|
}
|
@@ -962,7 +962,7 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
962
962
|
}
|
963
963
|
|
964
964
|
/**
|
965
|
-
*
|
965
|
+
* nl_xmlDictExists:
|
966
966
|
* @dict: the dictionary
|
967
967
|
* @name: the name of the userdata
|
968
968
|
* @len: the length of the name, if -1 it is recomputed
|
@@ -972,7 +972,7 @@ xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
972
972
|
* Returns the internal copy of the name or NULL if not found.
|
973
973
|
*/
|
974
974
|
const xmlChar *
|
975
|
-
|
975
|
+
nl_xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) {
|
976
976
|
unsigned long key, okey;
|
977
977
|
xmlDictEntryPtr insert;
|
978
978
|
unsigned int l;
|
@@ -1005,7 +1005,7 @@ xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
1005
1005
|
}
|
1006
1006
|
#else
|
1007
1007
|
if ((insert->okey == okey) && (insert->len == l) &&
|
1008
|
-
(!
|
1008
|
+
(!nl_xmlStrncmp(insert->name, name, l)))
|
1009
1009
|
return(insert->name);
|
1010
1010
|
#endif
|
1011
1011
|
}
|
@@ -1016,7 +1016,7 @@ xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
1016
1016
|
}
|
1017
1017
|
#else
|
1018
1018
|
if ((insert->okey == okey) && (insert->len == l) &&
|
1019
|
-
(!
|
1019
|
+
(!nl_xmlStrncmp(insert->name, name, l)))
|
1020
1020
|
return(insert->name);
|
1021
1021
|
#endif
|
1022
1022
|
}
|
@@ -1046,7 +1046,7 @@ xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
1046
1046
|
}
|
1047
1047
|
#else
|
1048
1048
|
if ((tmp->okey == skey) && (tmp->len == l) &&
|
1049
|
-
(!
|
1049
|
+
(!nl_xmlStrncmp(tmp->name, name, l)))
|
1050
1050
|
return(tmp->name);
|
1051
1051
|
#endif
|
1052
1052
|
}
|
@@ -1057,7 +1057,7 @@ xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
1057
1057
|
}
|
1058
1058
|
#else
|
1059
1059
|
if ((tmp->okey == skey) && (tmp->len == l) &&
|
1060
|
-
(!
|
1060
|
+
(!nl_xmlStrncmp(tmp->name, name, l)))
|
1061
1061
|
return(tmp->name);
|
1062
1062
|
#endif
|
1063
1063
|
}
|
@@ -1068,7 +1068,7 @@ xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
1068
1068
|
}
|
1069
1069
|
|
1070
1070
|
/**
|
1071
|
-
*
|
1071
|
+
* nl_xmlDictQLookup:
|
1072
1072
|
* @dict: the dictionary
|
1073
1073
|
* @prefix: the prefix
|
1074
1074
|
* @name: the name
|
@@ -1078,7 +1078,7 @@ xmlDictExists(xmlDictPtr dict, const xmlChar *name, int len) {
|
|
1078
1078
|
* Returns the internal copy of the QName or NULL in case of internal error
|
1079
1079
|
*/
|
1080
1080
|
const xmlChar *
|
1081
|
-
|
1081
|
+
nl_xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) {
|
1082
1082
|
unsigned long okey, key, nbi = 0;
|
1083
1083
|
xmlDictEntryPtr entry;
|
1084
1084
|
xmlDictEntryPtr insert;
|
@@ -1088,7 +1088,7 @@ xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) {
|
|
1088
1088
|
if ((dict == NULL) || (name == NULL))
|
1089
1089
|
return(NULL);
|
1090
1090
|
if (prefix == NULL)
|
1091
|
-
return(
|
1091
|
+
return(nl_xmlDictLookup(dict, name, -1));
|
1092
1092
|
|
1093
1093
|
l = len = strlen((const char *) name);
|
1094
1094
|
plen = strlen((const char *) prefix);
|
@@ -1105,12 +1105,12 @@ xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) {
|
|
1105
1105
|
for (insert = &(dict->dict[key]); insert->next != NULL;
|
1106
1106
|
insert = insert->next) {
|
1107
1107
|
if ((insert->okey == okey) && (insert->len == len) &&
|
1108
|
-
(
|
1108
|
+
(nl_xmlStrQEqual(prefix, name, insert->name)))
|
1109
1109
|
return(insert->name);
|
1110
1110
|
nbi++;
|
1111
1111
|
}
|
1112
1112
|
if ((insert->okey == okey) && (insert->len == len) &&
|
1113
|
-
(
|
1113
|
+
(nl_xmlStrQEqual(prefix, name, insert->name)))
|
1114
1114
|
return(insert->name);
|
1115
1115
|
}
|
1116
1116
|
|
@@ -1132,12 +1132,12 @@ xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) {
|
|
1132
1132
|
for (tmp = &(dict->subdict->dict[key]); tmp->next != NULL;
|
1133
1133
|
tmp = tmp->next) {
|
1134
1134
|
if ((tmp->okey == skey) && (tmp->len == len) &&
|
1135
|
-
(
|
1135
|
+
(nl_xmlStrQEqual(prefix, name, tmp->name)))
|
1136
1136
|
return(tmp->name);
|
1137
1137
|
nbi++;
|
1138
1138
|
}
|
1139
1139
|
if ((tmp->okey == skey) && (tmp->len == len) &&
|
1140
|
-
(
|
1140
|
+
(nl_xmlStrQEqual(prefix, name, tmp->name)))
|
1141
1141
|
return(tmp->name);
|
1142
1142
|
}
|
1143
1143
|
key = okey % dict->size;
|
@@ -1149,7 +1149,7 @@ xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) {
|
|
1149
1149
|
if (insert == NULL) {
|
1150
1150
|
entry = &(dict->dict[key]);
|
1151
1151
|
} else {
|
1152
|
-
entry =
|
1152
|
+
entry = nl_xmlMalloc(sizeof(xmlDictEntry));
|
1153
1153
|
if (entry == NULL)
|
1154
1154
|
return(NULL);
|
1155
1155
|
}
|
@@ -1173,7 +1173,7 @@ xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) {
|
|
1173
1173
|
}
|
1174
1174
|
|
1175
1175
|
/**
|
1176
|
-
*
|
1176
|
+
* nl_xmlDictOwns:
|
1177
1177
|
* @dict: the dictionary
|
1178
1178
|
* @str: the string
|
1179
1179
|
*
|
@@ -1183,7 +1183,7 @@ xmlDictQLookup(xmlDictPtr dict, const xmlChar *prefix, const xmlChar *name) {
|
|
1183
1183
|
* -1 in case of error
|
1184
1184
|
*/
|
1185
1185
|
int
|
1186
|
-
|
1186
|
+
nl_xmlDictOwns(xmlDictPtr dict, const xmlChar *str) {
|
1187
1187
|
xmlDictStringsPtr pool;
|
1188
1188
|
|
1189
1189
|
if ((dict == NULL) || (str == NULL))
|
@@ -1195,12 +1195,12 @@ xmlDictOwns(xmlDictPtr dict, const xmlChar *str) {
|
|
1195
1195
|
pool = pool->next;
|
1196
1196
|
}
|
1197
1197
|
if (dict->subdict)
|
1198
|
-
return(
|
1198
|
+
return(nl_xmlDictOwns(dict->subdict, str));
|
1199
1199
|
return(0);
|
1200
1200
|
}
|
1201
1201
|
|
1202
1202
|
/**
|
1203
|
-
*
|
1203
|
+
* nl_xmlDictSize:
|
1204
1204
|
* @dict: the dictionary
|
1205
1205
|
*
|
1206
1206
|
* Query the number of elements installed in the hash @dict.
|
@@ -1209,7 +1209,7 @@ xmlDictOwns(xmlDictPtr dict, const xmlChar *str) {
|
|
1209
1209
|
* -1 in case of error
|
1210
1210
|
*/
|
1211
1211
|
int
|
1212
|
-
|
1212
|
+
nl_xmlDictSize(xmlDictPtr dict) {
|
1213
1213
|
if (dict == NULL)
|
1214
1214
|
return(-1);
|
1215
1215
|
if (dict->subdict)
|
@@ -1218,7 +1218,7 @@ xmlDictSize(xmlDictPtr dict) {
|
|
1218
1218
|
}
|
1219
1219
|
|
1220
1220
|
/**
|
1221
|
-
*
|
1221
|
+
* nl_xmlDictSetLimit:
|
1222
1222
|
* @dict: the dictionary
|
1223
1223
|
* @limit: the limit in bytes
|
1224
1224
|
*
|
@@ -1228,7 +1228,7 @@ xmlDictSize(xmlDictPtr dict) {
|
|
1228
1228
|
* Returns the previous limit of the dictionary or 0
|
1229
1229
|
*/
|
1230
1230
|
size_t
|
1231
|
-
|
1231
|
+
nl_xmlDictSetLimit(xmlDictPtr dict, size_t limit) {
|
1232
1232
|
size_t ret;
|
1233
1233
|
|
1234
1234
|
if (dict == NULL)
|
@@ -1239,7 +1239,7 @@ xmlDictSetLimit(xmlDictPtr dict, size_t limit) {
|
|
1239
1239
|
}
|
1240
1240
|
|
1241
1241
|
/**
|
1242
|
-
*
|
1242
|
+
* nl_xmlDictGetUsage:
|
1243
1243
|
* @dict: the dictionary
|
1244
1244
|
*
|
1245
1245
|
* Get how much memory is used by a dictionary for strings
|
@@ -1248,7 +1248,7 @@ xmlDictSetLimit(xmlDictPtr dict, size_t limit) {
|
|
1248
1248
|
* Returns the amount of strings allocated
|
1249
1249
|
*/
|
1250
1250
|
size_t
|
1251
|
-
|
1251
|
+
nl_xmlDictGetUsage(xmlDictPtr dict) {
|
1252
1252
|
xmlDictStringsPtr pool;
|
1253
1253
|
size_t limit = 0;
|
1254
1254
|
|
@@ -87,7 +87,7 @@ static int xmlLittleEndian = 1;
|
|
87
87
|
static void
|
88
88
|
xmlEncodingErrMemory(const char *extra)
|
89
89
|
{
|
90
|
-
|
90
|
+
__nl_xmlSimpleError(XML_FROM_I18N, XML_ERR_NO_MEMORY, NULL, NULL, extra);
|
91
91
|
}
|
92
92
|
|
93
93
|
/**
|
@@ -100,7 +100,7 @@ xmlEncodingErrMemory(const char *extra)
|
|
100
100
|
static void LIBXML_ATTR_FORMAT(2,0)
|
101
101
|
xmlEncodingErr(xmlParserErrors error, const char *msg, const char *val)
|
102
102
|
{
|
103
|
-
|
103
|
+
__nl_xmlRaiseError(NULL, NULL, NULL, NULL, NULL,
|
104
104
|
XML_FROM_I18N, error, XML_ERR_FATAL,
|
105
105
|
NULL, 0, val, NULL, NULL, 0, 0, msg, val);
|
106
106
|
}
|