aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam M. Brack <wbrack@src.gnome.org>2004-07-26 18:00:58 +0000
committerWilliam M. Brack <wbrack@src.gnome.org>2004-07-26 18:00:58 +0000
commit30fe43f6144de60a901cd2bcc1ba92b5fd3df236 (patch)
tree32ff3948f3157497ed22a5520a482b75cfb759a6
parentb85c9205f94921a61a08ddedbb3605fd7ef69b12 (diff)
downloadandroid_external_libxml2-30fe43f6144de60a901cd2bcc1ba92b5fd3df236.tar.gz
android_external_libxml2-30fe43f6144de60a901cd2bcc1ba92b5fd3df236.tar.bz2
android_external_libxml2-30fe43f6144de60a901cd2bcc1ba92b5fd3df236.zip
put in patch for Windows buffer re-allocation submitted by Steve Hay (bug
* tree.c: put in patch for Windows buffer re-allocation submitted by Steve Hay (bug 146697)
-rw-r--r--ChangeLog5
-rw-r--r--tree.c11
2 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b5d72550..fa68fc72 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon Jul 26 11:03:18 PDT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * tree.c: put in patch for Windows buffer re-allocation
+ submitted by Steve Hay (bug 146697)
+
Sun Jul 25 17:18:39 PDT 2004 William Brack <wbrack@mmm.com.hk>
* xinclude.c: added some code to check, when an include is
diff --git a/tree.c b/tree.c
index 4d18cffd..c1d8add9 100644
--- a/tree.c
+++ b/tree.c
@@ -6607,7 +6607,18 @@ xmlBufferGrow(xmlBufferPtr buf, unsigned int len) {
if (buf->alloc == XML_BUFFER_ALLOC_IMMUTABLE) return(0);
if (len + buf->use < buf->size) return(0);
+/*
+ * Windows has a BIG problem on realloc timing, so we try to double
+ * the buffer size (if that's enough) (bug 146697)
+ */
+#ifdef WIN32
+ if (buf->size > len)
+ size = buf->size * 2;
+ else
+ size = buf->use + len + 100;
+#else
size = buf->use + len + 100;
+#endif
newbuf = (xmlChar *) xmlRealloc(buf->content, size);
if (newbuf == NULL) {