Import GNU Classpath (libgcj-import-20070727).
libjava/ 2007-08-04 Matthias Klose <doko@ubuntu.com> Import GNU Classpath (libgcj-import-20070727). * Regenerate class and header files. * Regenerate auto* files. * include/jvm.h: * jni-libjvm.cc (Jv_JNI_InvokeFunctions): Rename type. * jni.cc (_Jv_JNIFunctions, _Jv_JNI_InvokeFunctions): Likewise. * jni.cc (_Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodA, _Jv_JNI_CallMethodA, _Jv_JNI_CallVoidMethodA, _Jv_JNI_CallStaticMethodA, _Jv_JNI_CallStaticVoidMethodA, _Jv_JNI_NewObjectA, _Jv_JNI_SetPrimitiveArrayRegion): Constify jvalue parameter. * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise. * java/lang/VMFloat.java (toString, parseFloat): New. * gnu/awt/xlib/XToolkit.java (setAlwaysOnTop, isModalityTypeSupported, isModalExclusionTypeSupported): New (stub only). * gnu/awt/xlib/XCanvasPeer.java (requestFocus): Likewise. * gnu/awt/xlib/XFramePeer.java (updateMinimumSize, updateIconImages, updateFocusableWindowState, setModalBlocked, getBoundsPrivate, setAlwaysOnTop): Likewise. * gnu/awt/xlib/XFontPeer.java (canDisplay): Update signature. * scripts/makemake.tcl: Ignore gnu/javax/sound/sampled/gstreamer, ignore javax.sound.sampled.spi.MixerProvider, ignore .in files. * HACKING: Mention --enable-gstreamer-peer, removal of generated files. libjava/classpath/ 2007-08-04 Matthias Klose <doko@ubuntu.com> * java/util/EnumMap.java (clone): Add cast. From-SVN: r127204
This commit is contained in:
@@ -1108,26 +1108,47 @@ public abstract class DomNode
|
||||
*/
|
||||
public Node cloneNode(boolean deep)
|
||||
{
|
||||
DomNode node = (DomNode) clone();
|
||||
|
||||
if (deep)
|
||||
{
|
||||
DomDocument doc = (nodeType == DOCUMENT_NODE) ?
|
||||
(DomDocument) node : node.owner;
|
||||
boolean building = doc.building;
|
||||
return cloneNodeDeepInternal(true, null);
|
||||
}
|
||||
|
||||
DomNode node = (DomNode) clone();
|
||||
if (nodeType == ENTITY_REFERENCE_NODE)
|
||||
{
|
||||
node.makeReadonly();
|
||||
}
|
||||
notifyUserDataHandlers(UserDataHandler.NODE_CLONED, this, node);
|
||||
return node;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a deep clone of this node.
|
||||
*/
|
||||
private DomNode cloneNodeDeepInternal(boolean root, DomDocument doc)
|
||||
{
|
||||
DomNode node = (DomNode) clone();
|
||||
boolean building = false; // Never used unless root is true
|
||||
if (root)
|
||||
{
|
||||
doc = (nodeType == DOCUMENT_NODE) ? (DomDocument) node : node.owner;
|
||||
building = doc.building;
|
||||
doc.building = true; // Permit certain structural rules
|
||||
for (DomNode ctx = first; ctx != null; ctx = ctx.next)
|
||||
{
|
||||
DomNode newChild = (DomNode) ctx.cloneNode(deep);
|
||||
newChild.setOwner(doc);
|
||||
node.appendChild(newChild);
|
||||
}
|
||||
doc.building = building;
|
||||
}
|
||||
node.owner = doc;
|
||||
for (DomNode ctx = first; ctx != null; ctx = ctx.next)
|
||||
{
|
||||
DomNode newChild = ctx.cloneNodeDeepInternal(false, doc);
|
||||
node.appendChild(newChild);
|
||||
}
|
||||
if (nodeType == ENTITY_REFERENCE_NODE)
|
||||
{
|
||||
node.makeReadonly();
|
||||
}
|
||||
if (root)
|
||||
{
|
||||
doc.building = building;
|
||||
}
|
||||
notifyUserDataHandlers(UserDataHandler.NODE_CLONED, this, node);
|
||||
return node;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user