summaryrefslogtreecommitdiffstats
path: root/libxml2/optim
diff options
context:
space:
mode:
Diffstat (limited to 'libxml2/optim')
-rw-r--r--libxml2/optim/TOTRY23
-rw-r--r--libxml2/optim/hash_dict.patch257
-rw-r--r--libxml2/optim/hash_dict.txt11
3 files changed, 0 insertions, 291 deletions
diff --git a/libxml2/optim/TOTRY b/libxml2/optim/TOTRY
deleted file mode 100644
index 6e11f7e..0000000
--- a/libxml2/optim/TOTRY
+++ /dev/null
@@ -1,23 +0,0 @@
-XML:
-====
- - I/O avoid copies when parsing mmap'ed files, need to use
- unmutable buffers except for the last 4K to make it 0 terminated
- (or get rid of 0 termination check in the whole parser, hard !)
- - recheck > 4Gb instances for parsing, and RNG validation.
-
-
-XSLT:
-=====
- - global variable access
- for each expr in stylesheet : allocate index
- for each transformation context
- create an index table
- cache values in the transformation
- - context evaluation
- - cache
- - constants at the XPAth level
- - provide more info on compiled expressions
- - dependances w.r.t. variables (which ones)
- - dependancy on the current node
- - dependancy on the current document
- - do not use _private but other fields in the node structures.
diff --git a/libxml2/optim/hash_dict.patch b/libxml2/optim/hash_dict.patch
deleted file mode 100644
index 6c50abc..0000000
--- a/libxml2/optim/hash_dict.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-Index: hash.c
-===================================================================
-RCS file: /cvs/gnome/gnome-xml/hash.c,v
-retrieving revision 1.30
-diff -u -r1.30 hash.c
---- hash.c 29 Oct 2003 11:18:37 -0000 1.30
-+++ hash.c 24 Feb 2004 17:18:42 -0000
-@@ -26,6 +26,7 @@
- #include <libxml/xmlmemory.h>
- #include <libxml/xmlerror.h>
- #include <libxml/globals.h>
-+#include <libxml/dict.h>
-
- #define MAX_HASH_LEN 8
-
-@@ -38,9 +39,9 @@
- typedef xmlHashEntry *xmlHashEntryPtr;
- struct _xmlHashEntry {
- struct _xmlHashEntry *next;
-- xmlChar *name;
-- xmlChar *name2;
-- xmlChar *name3;
-+ const xmlChar *name;
-+ const xmlChar *name2;
-+ const xmlChar *name3;
- void *payload;
- int valid;
- };
-@@ -52,6 +53,7 @@
- struct _xmlHashEntry *table;
- int size;
- int nbElems;
-+ xmlDictPtr dict;
- };
-
- /*
-@@ -143,12 +145,16 @@
- xmlHashTablePtr
- xmlHashCreate(int size) {
- xmlHashTablePtr table;
-+ xmlDictPtr dict;
-
- if (size <= 0)
- size = 256;
-
-+ dict = xmlDictCreate();
-+ if (dict == NULL) return(NULL);
- table = xmlMalloc(sizeof(xmlHashTable));
- if (table) {
-+ table->dict = dict;
- table->size = size;
- table->nbElems = 0;
- table->table = xmlMalloc(size * sizeof(xmlHashEntry));
-@@ -158,6 +164,7 @@
- }
- xmlFree(table);
- }
-+ xmlDictFree(dict);
- return(NULL);
- }
-
-@@ -282,12 +289,6 @@
- next = iter->next;
- if ((f != NULL) && (iter->payload != NULL))
- f(iter->payload, iter->name);
-- if (iter->name)
-- xmlFree(iter->name);
-- if (iter->name2)
-- xmlFree(iter->name2);
-- if (iter->name3)
-- xmlFree(iter->name3);
- iter->payload = NULL;
- if (!inside_table)
- xmlFree(iter);
-@@ -299,6 +300,7 @@
- }
- xmlFree(table->table);
- }
-+ xmlDictFree(table->dict);
- xmlFree(table);
- }
-
-@@ -465,6 +467,9 @@
-
- if ((table == NULL) || name == NULL)
- return(-1);
-+ if (name) name = xmlDictLookup(table->dict, name, -1);
-+ if (name2) name2 = xmlDictLookup(table->dict, name2, -1);
-+ if (name3) name3 = xmlDictLookup(table->dict, name3, -1);
-
- /*
- * Check for duplicate and insertion location.
-@@ -475,15 +480,15 @@
- } else {
- for (insert = &(table->table[key]); insert->next != NULL;
- insert = insert->next) {
-- if ((xmlStrEqual(insert->name, name)) &&
-- (xmlStrEqual(insert->name2, name2)) &&
-- (xmlStrEqual(insert->name3, name3)))
-+ if ((insert->name == name) &&
-+ (insert->name2 == name2) &&
-+ (insert->name3 == name3))
- return(-1);
- len++;
- }
-- if ((xmlStrEqual(insert->name, name)) &&
-- (xmlStrEqual(insert->name2, name2)) &&
-- (xmlStrEqual(insert->name3, name3)))
-+ if ((insert->name == name) &&
-+ (insert->name2 == name2) &&
-+ (insert->name3 == name3))
- return(-1);
- }
-
-@@ -495,9 +500,9 @@
- return(-1);
- }
-
-- entry->name = xmlStrdup(name);
-- entry->name2 = xmlStrdup(name2);
-- entry->name3 = xmlStrdup(name3);
-+ entry->name = name;
-+ entry->name2 = name2;
-+ entry->name3 = name3;
- entry->payload = userdata;
- entry->next = NULL;
- entry->valid = 1;
-@@ -539,6 +544,9 @@
-
- if ((table == NULL) || name == NULL)
- return(-1);
-+ if (name) name = xmlDictLookup(table->dict, name, -1);
-+ if (name2) name2 = xmlDictLookup(table->dict, name2, -1);
-+ if (name3) name3 = xmlDictLookup(table->dict, name3, -1);
-
- /*
- * Check for duplicate and insertion location.
-@@ -549,18 +557,18 @@
- } else {
- for (insert = &(table->table[key]); insert->next != NULL;
- insert = insert->next) {
-- if ((xmlStrEqual(insert->name, name)) &&
-- (xmlStrEqual(insert->name2, name2)) &&
-- (xmlStrEqual(insert->name3, name3))) {
-+ if ((insert->name == name) &&
-+ (insert->name2 == name2) &&
-+ (insert->name3 == name3)) {
- if (f)
- f(insert->payload, insert->name);
- insert->payload = userdata;
- return(0);
- }
- }
-- if ((xmlStrEqual(insert->name, name)) &&
-- (xmlStrEqual(insert->name2, name2)) &&
-- (xmlStrEqual(insert->name3, name3))) {
-+ if ((insert->name == name) &&
-+ (insert->name2 == name2) &&
-+ (insert->name3 == name3)) {
- if (f)
- f(insert->payload, insert->name);
- insert->payload = userdata;
-@@ -576,9 +584,9 @@
- return(-1);
- }
-
-- entry->name = xmlStrdup(name);
-- entry->name2 = xmlStrdup(name2);
-- entry->name3 = xmlStrdup(name3);
-+ entry->name = name;
-+ entry->name2 = name2;
-+ entry->name3 = name3;
- entry->payload = userdata;
- entry->next = NULL;
- entry->valid = 1;
-@@ -615,10 +623,13 @@
- key = xmlHashComputeKey(table, name, name2, name3);
- if (table->table[key].valid == 0)
- return(NULL);
-+ if (name) name = xmlDictLookup(table->dict, name, -1);
-+ if (name2) name2 = xmlDictLookup(table->dict, name2, -1);
-+ if (name3) name3 = xmlDictLookup(table->dict, name3, -1);
- for (entry = &(table->table[key]); entry != NULL; entry = entry->next) {
-- if ((xmlStrEqual(entry->name, name)) &&
-- (xmlStrEqual(entry->name2, name2)) &&
-- (xmlStrEqual(entry->name3, name3)))
-+ if ((entry->name == name) &&
-+ (entry->name2 == name2) &&
-+ (entry->name3 == name3))
- return(entry->payload);
- }
- return(NULL);
-@@ -774,6 +785,9 @@
- if (f == NULL)
- return;
-
-+ if (name) name = xmlDictLookup(table->dict, name, -1);
-+ if (name2) name2 = xmlDictLookup(table->dict, name2, -1);
-+ if (name3) name3 = xmlDictLookup(table->dict, name3, -1);
- if (table->table) {
- for(i = 0; i < table->size; i++) {
- if (table->table[i].valid == 0)
-@@ -781,9 +795,9 @@
- iter = &(table->table[i]);
- while (iter) {
- next = iter->next;
-- if (((name == NULL) || (xmlStrEqual(name, iter->name))) &&
-- ((name2 == NULL) || (xmlStrEqual(name2, iter->name2))) &&
-- ((name3 == NULL) || (xmlStrEqual(name3, iter->name3))) &&
-+ if (((name == NULL) || (name == iter->name)) &&
-+ ((name2 == NULL) || (name2 == iter->name2)) &&
-+ ((name3 == NULL) || (name3 == iter->name3)) &&
- (iter->payload != NULL)) {
- f(iter->payload, data, iter->name,
- iter->name2, iter->name3);
-@@ -913,19 +927,16 @@
- if (table->table[key].valid == 0) {
- return(-1);
- } else {
-+ if (name) name = xmlDictLookup(table->dict, name, -1);
-+ if (name2) name2 = xmlDictLookup(table->dict, name2, -1);
-+ if (name3) name3 = xmlDictLookup(table->dict, name3, -1);
- for (entry = &(table->table[key]); entry != NULL; entry = entry->next) {
-- if (xmlStrEqual(entry->name, name) &&
-- xmlStrEqual(entry->name2, name2) &&
-- xmlStrEqual(entry->name3, name3)) {
-+ if ((entry->name == name) &&
-+ (entry->name2 == name2) &&
-+ (entry->name3 == name3)) {
- if ((f != NULL) && (entry->payload != NULL))
- f(entry->payload, entry->name);
- entry->payload = NULL;
-- if(entry->name)
-- xmlFree(entry->name);
-- if(entry->name2)
-- xmlFree(entry->name2);
-- if(entry->name3)
-- xmlFree(entry->name3);
- if(prev) {
- prev->next = entry->next;
- xmlFree(entry);
-Index: include/libxml/hash.h
-===================================================================
-RCS file: /cvs/gnome/gnome-xml/include/libxml/hash.h,v
-retrieving revision 1.15
-diff -u -r1.15 hash.h
---- include/libxml/hash.h 20 Nov 2003 11:59:07 -0000 1.15
-+++ include/libxml/hash.h 24 Feb 2004 17:18:42 -0000
-@@ -42,7 +42,7 @@
- *
- * Callback to free data from a hash.
- */
--typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name);
-+typedef void (*xmlHashDeallocator)(void *payload, const xmlChar *name);
- /**
- * xmlHashCopier:
- * @payload: the data in the hash
diff --git a/libxml2/optim/hash_dict.txt b/libxml2/optim/hash_dict.txt
deleted file mode 100644
index a447b7e..0000000
--- a/libxml2/optim/hash_dict.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Reuses a dictionary for the hash table to reduce the string compare
-costs. Not worth it unless validating big DTDs
-
- without with
-db10000 tree 175/79 179/81
-db100000 stream 1222 1217
-dba100000stream 593 601
-REC validation 1986 2098
-Docbook valid 10808 10649
-
-Tue Feb 24 19:09:49 CET 2004