gmime r1473 - trunk/gmime
- From: fejj svn gnome org
- To: svn-commits-list gnome org
- Subject: gmime r1473 - trunk/gmime
- Date: Thu, 2 Oct 2008 03:09:59 +0000 (UTC)
Author: fejj
Date: Thu Oct 2 03:09:59 2008
New Revision: 1473
URL: http://svn.gnome.org/viewvc/gmime?rev=1473&view=rev
Log:
use a more conservative headerbuf growing algorithm
Modified:
trunk/gmime/gmime-parser.c
Modified: trunk/gmime/gmime-parser.c
==============================================================================
--- trunk/gmime/gmime-parser.c (original)
+++ trunk/gmime/gmime-parser.c Thu Oct 2 03:09:59 2008
@@ -760,7 +760,8 @@
return 0;
}
-static size_t
+#ifdef ALLOC_NEAREST_POW2
+static inline size_t
nearest_pow (size_t num)
{
size_t n = num > 0 ? num - 1 : 0;
@@ -775,12 +776,21 @@
return n;
}
+#define next_alloc_size(n) nearest_pow (n)
+#else
+static inline size_t
+next_alloc_size (size_t n)
+{
+ return ((n + 63) / 64) * 64;
+}
+#endif
+
#define header_append(priv, start, len) G_STMT_START { \
if (priv->headerleft <= len) { \
size_t hlen, hoff; \
\
hoff = priv->headerptr - priv->headerbuf; \
- hlen = nearest_pow (hoff + len + 1); \
+ hlen = next_alloc_size (hoff + len + 1); \
\
priv->headerbuf = g_realloc (priv->headerbuf, hlen); \
priv->headerptr = priv->headerbuf + hoff; \
@@ -797,7 +807,7 @@
size_t hlen, hoff; \
\
hoff = priv->rawptr - priv->rawbuf; \
- hlen = nearest_pow (hoff + len + 1); \
+ hlen = next_alloc_size (hoff + len + 1); \
\
priv->rawbuf = g_realloc (priv->rawbuf, hlen); \
priv->rawptr = priv->rawbuf + hoff; \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]