不止一次调用DOMImplementationRegistry :: getDOMImplementation()是不安全的还是至少是不好的形式?

时间:2015-03-09 20:25:12

标签: c++ xml dom xerces xerces-c

只是想知道这是否安全current documentation没有提到必须释放()这个指针,或者多次调用它是一个错误。我自己的解释是,因为这些东西可以像列表那样获得,可能是通过XMLPlatformUtils :: Initialize()方法创建的,并且重复调用每次都会返回相同的指针值。

1 个答案:

答案 0 :(得分:1)

根据源代码判断DOMImplementation::getDOMImplementation()调用DOMImplementationImpl::getDOMImplementationImpl(),该DOMImplementationImpl会返回XMLInitializer::initializeDOMImplementationImpl()对象,该XMLInitializer::initializeStaticData()对象在XMLPlatformUtils::Initialize()DOMImplementationRegistry::getDOMImplementation()静态调用时初始化DOMImplementationImpl 1}}。

所以,是的,多次调用DOMImplementationRegistry::getDOMImplementation()似乎是“安全的”,因为每次调用该方法时,该方法似乎都会返回指向静态创建的{{1}}对象的相同指针。虽然,我不确定为什么要多次拨打{{1}}。

源代码链接:

  • DOMImplementationRegistry(.hpp / .cpp
  • DOMImplementationSource .hpp由DOMImplementationImpl实现(.hpp / .cpp
  • XMLInitializer(.hpp / .cpp
  • XMLPlatformUtils(.hpp / .cpp