diff options
-rw-r--r-- | desktop/source/app/main.c | 14 | ||||
-rw-r--r-- | unoxml/source/rdf/librdf_repository.cxx | 6 |
2 files changed, 20 insertions, 0 deletions
diff --git a/desktop/source/app/main.c b/desktop/source/app/main.c index ae016b498297..c18fabd158d2 100644 --- a/desktop/source/app/main.c +++ b/desktop/source/app/main.c @@ -25,4 +25,18 @@ SAL_IMPLEMENT_MAIN() { return soffice_main(); } +#ifdef DBG_UTIL +#ifdef __gnu_linux__ +#include <stdio.h> +#include <stdlib.h> + +/* HACK: detect calls to xmlCleanupParser, which causes hard to debug crashes */ +__attribute__ ((visibility("default"))) void xmlCleanupParser(void) +{ + fprintf(stderr, "\n*** ERROR: DO NOT call xmlCleanupParser()\n\n"); + abort(); +} +#endif +#endif + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/unoxml/source/rdf/librdf_repository.cxx b/unoxml/source/rdf/librdf_repository.cxx index 733b3132e0c4..1e98ee5a6fcf 100644 --- a/unoxml/source/rdf/librdf_repository.cxx +++ b/unoxml/source/rdf/librdf_repository.cxx @@ -127,7 +127,13 @@ bool isInternalContext(librdf_node *i_pNode) throw () // so they need to be wrapped to be usable with boost::shared_ptr. static void safe_librdf_free_world(librdf_world *const world) { +#if 1 + (void)world; // leak it +#else + // disable this for now: it calls xmlCleanupParser, which now aborts + // (see desktop/source/app/main.c) if (world) { librdf_free_world(world); } +#endif } static void safe_librdf_free_model(librdf_model *const model) { |