[prev in list] [next in list] [prev in thread] [next in thread] 

List:       bcel-dev
Subject:    svn commit: r153380 - in
From:       tcurdt () apache ! org
Date:       2005-02-11 10:23:39
Message-ID: 20050211102339.869.qmail () minotaur ! apache ! org
[Download RAW message or body]

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;



---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic