短いバージョン:XercesDOMParser*
と が作成に使用された の前に範囲外にDOMDocument*
出て も安全DOMElement*
ですか?
長いバージョン:
以下のコード スニペットでは、ドキュメントのルート要素を取得してメンバー 変数に格納するために、ローカルのXercesDOMParser*
andを作成します。とはどちらもコンストラクターの最後でスコープ外になりますが、 はメンバー変数として存続します。これでよろしいですか?今のところうまくいっているようですが、後で問題が発生するのではないかと不安です。DOMDocument*
DOMElement*
XercesDOMParser*
DOMDocument*
DOMElement*
JNIRequest::JNIRequest(JNIEnv *env, jobject obj, jstring input)
{
char *szInputXML = (char*) env->GetStringUTFChars(input, NULL);
XMLPlatformUtils::Initialize();
XercesDOMParser* pParser = new XercesDOMParser();
XMLByte* xmlByteInput = (XMLByte*) szInputXML;
xercesc::MemBufInputSource source(xmlByteInput, strlen(szInputXML), "BufferID");
pParser->parse(source);
DOMDocument* pDocument = pParser->getDocument();
/* This next variable is a DOMElement* */
this->_pRootElement = pDocument->getDocumentElement();
}