From 6baeaf39441895c0374974d96da84f2e3979cfb2 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Fri, 5 Dec 2014 10:02:04 -0800 Subject: Added CMARK_NODE_TYPE_NONE. This is the return value of cmark_get_node_type when the argument is a null pointer. Avoids segfault. --- src/cmark.h | 2 ++ src/node.c | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/cmark.h b/src/cmark.h index cae4426..2559b5f 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -62,6 +62,8 @@ typedef enum { CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT, CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE, + + CMARK_NODE_NONE = -1 } cmark_node_type; diff --git a/src/node.c b/src/node.c index fd92fdc..0991a9d 100644 --- a/src/node.c +++ b/src/node.c @@ -77,7 +77,11 @@ cmark_node_free(cmark_node *node) { cmark_node_type cmark_node_get_type(cmark_node *node) { - return node->type; + if (node == NULL) { + return CMARK_NODE_NONE; + } else { + return node->type; + } } static const char* @@ -103,6 +107,7 @@ S_type_string(cmark_node *node) case CMARK_NODE_STRONG: return "STRONG"; case CMARK_NODE_LINK: return "LINK"; case CMARK_NODE_IMAGE: return "IMAGE"; + case CMARK_NODE_NONE: return "NONE"; } return ""; -- cgit v1.2.3