svn commit: r153380 - in jakarta/bcel/trunk/src/java/org/apache/bcel/classfile: Code.java Deprecated.java ExceptionTable.java Synthetic.java Unknown.java

[email protected]
Newsgroups gmane.comp.jakarta.bcel.devel
Message-ID <[email protected]>
Author: tcurdt
Date: Fri Feb 11 02:23:36 2005
New Revision: 153380

URL: http://svn.apache.org/viewcvs?view=rev&rev=153380
Log:
fixed the deep cloning


Modified:
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Code.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Deprecated.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ExceptionTable.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Synthetic.java
    jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Unknown.java

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Code.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Code.java?view=diff&r1=153379&r2=153380
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Code.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Code.java Fri Feb 11 02:23:36 2005
@@ -320,8 +320,13 @@
    * @param constant_pool the constant pool to duplicate
    */
   public Attribute copy(ConstantPool constant_pool) {
-    Code c = (Code)clone();
-    c.code          = code.clone();
+    Code c = (Code) clone();
+
+    if (code != null) {
+        c.code = new byte[code.length];
+        System.arraycopy(code, 0, c.code, 0, code.length);
+    }
+
     c.constant_pool = constant_pool;
   
     c.exception_table = new CodeException[exception_table_length];

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Deprecated.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Deprecated.java?view=diff&r1=153379&r2=153380
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Deprecated.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Deprecated.java Fri Feb 11 02:23:36 2005
@@ -123,8 +123,10 @@
   public Attribute copy(ConstantPool constant_pool) {
     Deprecated c = (Deprecated)clone();
 
-    if(bytes != null)
-      c.bytes = bytes.clone();
+    if (bytes != null) {
+        c.bytes = new byte[bytes.length];
+        System.arraycopy(bytes, 0, c.bytes, 0, bytes.length);
+    }
 
     c.constant_pool = constant_pool;
     return c;

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ExceptionTable.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ExceptionTable.java?view=diff&r1=153379&r2=153380
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ExceptionTable.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/ExceptionTable.java Fri Feb 11 02:23:36 2005
@@ -158,7 +158,12 @@
    */
   public Attribute copy(ConstantPool constant_pool) {
     ExceptionTable c = (ExceptionTable)clone();
-    c.exception_index_table = exception_index_table.clone();
+
+    if (exception_index_table != null) {
+        c.exception_index_table = new int[exception_index_table.length];
+        System.arraycopy(exception_index_table, 0, c.exception_index_table, 0, exception_index_table.length);
+    }
+    
     c.constant_pool = constant_pool;
     return c;
   }

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Synthetic.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Synthetic.java?view=diff&r1=153379&r2=153380
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Synthetic.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Synthetic.java Fri Feb 11 02:23:36 2005
@@ -130,8 +130,10 @@
   public Attribute copy(ConstantPool constant_pool) {
     Synthetic c = (Synthetic)clone();
 
-    if(bytes != null)
-      c.bytes = bytes.clone();
+    if (bytes != null) {
+        c.bytes = new byte[bytes.length];
+        System.arraycopy(bytes, 0, c.bytes, 0, bytes.length);
+    }
 
     c.constant_pool = constant_pool;
     return c;

Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Unknown.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Unknown.java?view=diff&r1=153379&r2=153380
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Unknown.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/classfile/Unknown.java Fri Feb 11 02:23:36 2005
@@ -167,8 +167,10 @@
   public Attribute copy(ConstantPool constant_pool) {
     Unknown c = (Unknown)clone();
 
-    if(bytes != null)
-      c.bytes = bytes.clone();
+    if (bytes != null) {
+        c.bytes = new byte[bytes.length];
+        System.arraycopy(bytes, 0, c.bytes, 0, bytes.length);
+    }
 
     c.constant_pool = constant_pool;
     return c;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.