[lasem] dom: revert to use -1 as value for NULL terminated buffer
- From: Emmanuel Pacaud <emmanuel src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [lasem] dom: revert to use -1 as value for NULL terminated buffer
- Date: Sun, 13 Jul 2014 21:04:54 +0000 (UTC)
commit e4b9c97903bcd9cd1678a0fec6981631618839f0
Author: Emmanuel Pacaud <emmanuel gnome org>
Date: Sun Jul 13 23:00:22 2014 +0200
dom: revert to use -1 as value for NULL terminated buffer
That is consistant with what glib does. The issue in bug
730284 regarding itex2MML_parse seems not correct, as
the value passed to itex is the result of strlen if size
is negative.
src/lsmdomparser.c | 14 +++++++-------
src/lsmdomparser.h | 4 ++--
src/lsmitex.c | 13 ++++++++-----
src/lsmitex.h | 2 +-
src/lsmmathmldocument.c | 4 ++--
src/lsmmathmldocument.h | 2 +-
tests/lsmtest.c | 4 ++--
7 files changed, 23 insertions(+), 20 deletions(-)
---
diff --git a/src/lsmdomparser.c b/src/lsmdomparser.c
index 402256b..5d0fe9d 100644
--- a/src/lsmdomparser.c
+++ b/src/lsmdomparser.c
@@ -259,7 +259,7 @@ typedef enum {
static LsmDomDocument *
_parse_memory (LsmDomDocument *document, LsmDomNode *node,
- const void *buffer, gsize size, GError **error)
+ const void *buffer, gssize size, GError **error)
{
static LsmDomSaxParserState state;
@@ -269,7 +269,7 @@ _parse_memory (LsmDomDocument *document, LsmDomNode *node,
else
state.current_node = LSM_DOM_NODE (document);
- if (size < 1)
+ if (size < 0)
size = strlen (buffer);
if (xmlSAXUserParseMemory (&sax_handler, &state, buffer, size) < 0) {
@@ -293,18 +293,18 @@ _parse_memory (LsmDomDocument *document, LsmDomNode *node,
* @document: a #LsmDomDocument
* @node: a #LsmDomNode
* @buffer: a memory buffer holding xml data
- * @size: size of the xml data, in bytes, 0 if unknown
+ * @size: size of the xml data, in bytes, -1 if NULL terminated
* @error: an error placeholder
*
* Append a chunk of xml tree to an existing document. The resulting nodes will be appended to
* @node, or to @document if @node == NULL.
*
- * Size set to 0 indicates an unknow xml data size.
+ * Size set to -1 indicates the buffer is NULL terminated.
*/
void
lsm_dom_document_append_from_memory (LsmDomDocument *document, LsmDomNode *node,
- const void *buffer, gsize size, GError **error)
+ const void *buffer, gssize size, GError **error)
{
g_return_if_fail (LSM_IS_DOM_DOCUMENT (document));
g_return_if_fail (LSM_IS_DOM_NODE (node) || node == NULL);
@@ -316,14 +316,14 @@ lsm_dom_document_append_from_memory (LsmDomDocument *document, LsmDomNode *node,
/**
* lsm_dom_document_new_from_memory:
* @buffer: xml data
- * @size: size of the data, in bytes, 0 if unknown
+ * @size: size of the data, in bytes, -1 if NULL terminated
* @error: an error placeholder
*
* Create a new document from a memory data buffer.
*/
LsmDomDocument *
-lsm_dom_document_new_from_memory (const void *buffer, gsize size, GError **error)
+lsm_dom_document_new_from_memory (const void *buffer, gssize size, GError **error)
{
g_return_val_if_fail (buffer != NULL, NULL);
diff --git a/src/lsmdomparser.h b/src/lsmdomparser.h
index 8e89331..28cfb34 100644
--- a/src/lsmdomparser.h
+++ b/src/lsmdomparser.h
@@ -30,8 +30,8 @@
G_BEGIN_DECLS
void lsm_dom_document_append_from_memory (LsmDomDocument *document, LsmDomNode *node,
- const void *buffer, gsize size, GError
**error);
-LsmDomDocument * lsm_dom_document_new_from_memory (const void *buffer, gsize size, GError
**error);
+ const void *buffer, gssize size, GError
**error);
+LsmDomDocument * lsm_dom_document_new_from_memory (const void *buffer, gssize size, GError
**error);
LsmDomDocument * lsm_dom_document_new_from_path (const char *path, GError **error);
LsmDomDocument * lsm_dom_document_new_from_url (const char *url, GError **error);
diff --git a/src/lsmitex.c b/src/lsmitex.c
index 49b3f04..c13ef6d 100644
--- a/src/lsmitex.c
+++ b/src/lsmitex.c
@@ -28,7 +28,7 @@
/**
* lsm_itex_to_mathml:
* @itex: (allow-none): an itex string
- * @size: itex string length, 0 if unknown
+ * @size: itex string length, -1 if NULL terminated
*
* Converts an itex string to a Mathml representation.
*
@@ -36,17 +36,20 @@
*/
char *
-lsm_itex_to_mathml (const char *itex, gsize size)
+lsm_itex_to_mathml (const char *itex, gssize size)
{
+ gsize usize;
char *mathml;
if (itex == NULL)
return NULL;
- if (size < 1)
- size = strlen (itex);
+ if (size < 0)
+ usize = strlen (itex);
+ else
+ usize = size;
- mathml = itex2MML_parse (itex, size);
+ mathml = itex2MML_parse (itex, usize);
if (mathml == NULL)
return NULL;
diff --git a/src/lsmitex.h b/src/lsmitex.h
index 266c7be..b520f14 100644
--- a/src/lsmitex.h
+++ b/src/lsmitex.h
@@ -28,7 +28,7 @@
G_BEGIN_DECLS
-char * lsm_itex_to_mathml (const char *itex, gsize size);
+char * lsm_itex_to_mathml (const char *itex, gssize size);
void lsm_itex_free_mathml_buffer (char *mathml);
G_END_DECLS
diff --git a/src/lsmmathmldocument.c b/src/lsmmathmldocument.c
index 825dc8a..684dad5 100644
--- a/src/lsmmathmldocument.c
+++ b/src/lsmmathmldocument.c
@@ -213,7 +213,7 @@ typedef enum {
} LsmMathmlDocumentError;
LsmMathmlDocument *
-lsm_mathml_document_new_from_itex (const char *itex, gsize size, GError **error)
+lsm_mathml_document_new_from_itex (const char *itex, gssize size, GError **error)
{
LsmDomDocument *document;
char *mathml;
@@ -250,7 +250,7 @@ static LsmMathmlDocument *
lsm_mathml_document_new_from_itex_file (GFile *file, GError **error)
{
LsmMathmlDocument *document;
- gsize size = 0;
+ gssize size = 0;
char *contents = NULL;
if (!g_file_load_contents (file, NULL, &contents, &size, NULL, error))
diff --git a/src/lsmmathmldocument.h b/src/lsmmathmldocument.h
index b0dc7dd..4e050be 100644
--- a/src/lsmmathmldocument.h
+++ b/src/lsmmathmldocument.h
@@ -51,7 +51,7 @@ GType lsm_mathml_document_get_type (void);
LsmDomDocument * lsm_mathml_document_new (void);
LsmMathmlMathElement * lsm_mathml_document_get_root_element (const LsmMathmlDocument *document);
-LsmMathmlDocument * lsm_mathml_document_new_from_itex (const char *itex, gsize size, GError
**error);
+LsmMathmlDocument * lsm_mathml_document_new_from_itex (const char *itex, gssize size, GError
**error);
LsmMathmlDocument * lsm_mathml_document_new_from_itex_path (const char *url, GError **error);
LsmMathmlDocument * lsm_mathml_document_new_from_itex_url (const char *url, GError **error);
diff --git a/tests/lsmtest.c b/tests/lsmtest.c
index 1fdaf56..b2125f4 100644
--- a/tests/lsmtest.c
+++ b/tests/lsmtest.c
@@ -254,7 +254,7 @@ lasem_test_render (char const *filename, gboolean compare, gboolean dry_run, Sta
cairo_t *cairo;
cairo_surface_t *surface;
char *buffer = NULL;
- gsize size;
+ gssize size;
char *png_filename;
char *reference_png_filename;
char *test_name;
@@ -300,7 +300,7 @@ lasem_test_render (char const *filename, gboolean compare, gboolean dry_run, Sta
xml = buffer;
else {
xml = itex2MML_parse (buffer, size);
- size = 0;
+ size = -1;
}
timer = g_timer_new ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]