Libxml2を使用してXMLファイルの読み取り/書き込みを行っています。XMLのロード中にlibxmlエラーをキャッチするために、私はxmlSetGenericErrorFuncを使用しています。
void Myclass::load(const std::string &filename)
{
xmlGenericErrorFunc handler = (xmlGenericErrorFunc) catchErrors;
xmlSetGenericErrorFunc(this, handler); //context pointer, error handler
}
コンテキストとエラーハンドラのリセットは、次のように実行できます。
xmlSetGenericErrorFunc(NULL, NULL);
私のラッパーライブラリは多くのプロセスで使用されています。Libxml2は.soファイルです。
エラーハンドラでコンテキストポインタを使用する場合、コンテキストポインタをリセットせずに一部のプロセスが停止し、他のプロセスで解析エラーが発生すると、クラッシュする可能性はありますか?libxmlはデッドポインタでエラーコールバックを呼び出すことができますか?
どんな助けでもいただければ幸いです。ありがとうございました。