Commit 0e3f72af654649f5db64cfd8c8104f88fb55eeb2

Peter Hutterer 2022-01-17T13:51:48

registry: don't call xmlCleanupParser() From the documentation: > It does not clean up parser state, it cleans up memory allocated by the library > itself. It is a cleanup function for the XML library. It tries to reclaim all > related global memory allocated for the library processing. [...] > One should call xmlCleanupParser() only when the process has finished using the library. http://xmlsoft.org/html/libxml-parser.html#xmlCleanupParser Since we're a library ourselves we cannot know if something else in the same proces uses the parser, so we must not call this. Reported-by: M Hickford

1
2
3
4
5
6
7
8
9
10
11
12
diff --git a/src/registry.c b/src/registry.c
index 7198828..17b6650 100644
--- a/src/registry.c
+++ b/src/registry.c
@@ -1197,7 +1197,6 @@ parse(struct rxkb_context *ctx, const char *path,
     success = true;
 error:
     xmlFreeDoc(doc);
-    xmlCleanupParser();
 
     return success;
 }