From 4e33cfefc15bc0ac77c7db21f3955ed3c9772e1c Mon Sep 17 00:00:00 2001 From: "sdv%sparc.spb.su" Date: Wed, 21 Jun 2000 12:20:08 +0000 Subject: [PATCH] fix for bug=43290 git-svn-id: svn://10.0.0.236/trunk@72755 18797224-902f-48f8-a5cc-f745e15eee43 --- .../dom/jni/org_mozilla_dom_DocumentImpl.cpp | 17 ++++++++++++++++- .../dom/jni/org_mozilla_dom_ElementImpl.cpp | 17 ++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.cpp b/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.cpp index 5bcc54524b3..ad0e15bd978 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.cpp +++ b/mozilla/java/dom/jni/org_mozilla_dom_DocumentImpl.cpp @@ -707,7 +707,22 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_DocumentImpl_getElementsByTagName return NULL; } - return JavaDOMGlobals::CreateNodeSubtype(env, (nsIDOMNode*)elements); + jobject jret = env->AllocObject(JavaDOMGlobals::nodeListClass); + if (!jret) { + JavaDOMGlobals::ThrowException(env, + "Document.getElementsByTagNameNS: failed to allocate object"); + return NULL; + } + + env->SetLongField(jret, JavaDOMGlobals::nodePtrFID, (jlong) elements); + if (env->ExceptionOccurred()) { + JavaDOMGlobals::ThrowException(env, + "Document.getElementsByTagNameNS: failed to set node ptr"); + return NULL; + } + + elements->AddRef(); + return jret; } /* diff --git a/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.cpp b/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.cpp index d3df8383637..c3e852667ee 100644 --- a/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.cpp +++ b/mozilla/java/dom/jni/org_mozilla_dom_ElementImpl.cpp @@ -676,7 +676,22 @@ JNIEXPORT jobject JNICALL Java_org_mozilla_dom_ElementImpl_getElementsByTagNameN return NULL; } - return JavaDOMGlobals::CreateNodeSubtype(env, (nsIDOMNode*)nodes); + jobject jnodes = env->AllocObject(JavaDOMGlobals::nodeListClass); + if (!jnodes) { + JavaDOMGlobals::ThrowException(env, + "Element.getElementsByTagNameNS: failed to allocate object"); + return NULL; + } + + env->SetLongField(jnodes, JavaDOMGlobals::nodeListPtrFID, (jlong) nodes); + if (env->ExceptionOccurred()) { + JavaDOMGlobals::ThrowException(env, + "Element.getElementsByTagNameNS: failed to set node ptr"); + return NULL; + } + + nodes->AddRef(); + return jnodes; } /*