diff options
author | Dave Beckett <dave@dajobe.org> | 2017-04-16 23:17:03 +0100 |
---|---|---|
committer | Dave Beckett <dave@dajobe.org> | 2017-04-16 23:17:03 +0100 |
commit | 482ecd1bb8f7daac4f79f84006b3fd046217a158 (patch) | |
tree | 1bbea7d8dcbb1d8e676216ec42b433fe2819e66c | |
parent | 590681e546cd9aa18d57dc2ea1858cb734a3863f (diff) | |
download | raptor-482ecd1bb8f7daac4f79f84006b3fd046217a158.tar.gz |
Make nsd compare methods handle NULLs
(raptor_nsd_compare, raptor_xml_writer_nsd_compare): Sort NULLs
separate and avoid strcmp() where those are undefined.
-rw-r--r-- | src/raptor_xml.c | 6 | ||||
-rw-r--r-- | src/raptor_xml_writer.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/raptor_xml.c b/src/raptor_xml.c index 2b60a3ff..77644ca9 100644 --- a/src/raptor_xml.c +++ b/src/raptor_xml.c @@ -319,6 +319,12 @@ raptor_nsd_compare(const void *a, const void *b) { struct nsd* nsd_a = (struct nsd*)a; struct nsd* nsd_b = (struct nsd*)b; + + /* Sort NULLs earlier */ + if(!nsd_a->declaration) + return -1; + else if(!nsd_b->declaration) + return 1; return strcmp((const char*)nsd_a->declaration, (const char*)nsd_b->declaration); } diff --git a/src/raptor_xml_writer.c b/src/raptor_xml_writer.c index 0d3a36a5..2f442ba8 100644 --- a/src/raptor_xml_writer.c +++ b/src/raptor_xml_writer.c @@ -164,6 +164,12 @@ raptor_xml_writer_nsd_compare(const void *a, const void *b) { struct nsd* nsd_a = (struct nsd*)a; struct nsd* nsd_b = (struct nsd*)b; + + /* Sort NULLs earlier */ + if(!nsd_a->declaration) + return -1; + else if(!nsd_b->declaration) + return 1; return strcmp((const char*)nsd_a->declaration, (const char*)nsd_b->declaration); } |