summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-08-13 11:09:37 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-08-13 11:09:37 +0000
commitecf6e517b5f65397507697c28c29981507a052ab (patch)
tree0bb96ba235be56cee7ce5351478e7679db92e56d /src
parent78e86666d3da1a9fd904e8bfc6b8ead22a1520ec (diff)
downloadlibparserutils-ecf6e517b5f65397507697c28c29981507a052ab.tar.gz
libparserutils-ecf6e517b5f65397507697c28c29981507a052ab.tar.bz2
Move the location of the utf8 buffer every time we're asked for a character in debug mode.
This leaks memory lots, deliberately. svn path=/trunk/libparserutils/; revision=5081
Diffstat (limited to 'src')
-rw-r--r--src/utils/buffer.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/utils/buffer.c b/src/utils/buffer.c
index 21c47fc..3c28e16 100644
--- a/src/utils/buffer.c
+++ b/src/utils/buffer.c
@@ -154,3 +154,27 @@ parserutils_error parserutils_buffer_grow(parserutils_buffer *buffer)
return PARSERUTILS_OK;
}
+parserutils_error parserutils_buffer_randomise(parserutils_buffer *buffer)
+{
+ if (buffer == NULL)
+ return PARSERUTILS_BADPARM;
+
+#ifndef NDEBUG
+ uint8_t *temp = buffer->alloc(NULL, buffer->allocated, buffer->pw);
+ if (temp == NULL)
+ return PARSERUTILS_NOMEM;
+
+ memcpy(temp, buffer->data, buffer->length);
+
+ memset(buffer->data, 0xff, buffer->length);
+
+ /* Leak the buffer's current data, so we don't reuse it */
+ /* buffer->alloc(buffer->data, 0, buffer->pw); */
+
+ buffer->data = temp;
+#endif
+
+
+ return PARSERUTILS_OK;
+}
+