Nice/src/mlsub/typing/lowlevel Satisfier.java,1.2,1.3 K0.java,1.25,1.26 DomainVector.java,1.4,1.5 Domain.java,1.5,1.6 BitVector.java,1.10,1.11 BitMatrix.java,1.8,1.9

Daniel Bonniot <[email protected]> Tue, 29 Mar 2005 22:52:00 +0000
Newsgroups gmane.comp.lang.nice.cvs
Message-ID <[email protected]>
Update of /cvsroot/nice/Nice/src/mlsub/typing/lowlevel
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11424/src/mlsub/typing/lowlevel

Modified Files:
	Satisfier.java K0.java DomainVector.java Domain.java 
	BitVector.java BitMatrix.java 
Log Message:
Optim: do not use Object.clone to clone BitVectors.


Index: Domain.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/Domain.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Domain.java	29 Mar 2005 15:33:02 -0000	1.5
--- Domain.java	29 Mar 2005 22:51:57 -0000	1.6
***************
*** 223,225 ****
--- 223,239 ----
      return result;
    }
+ 
+   public Domain cloneDomain() {
+     Domain result = new Domain(0);
+     this.copyTo(result);
+     return result;
+   }
+ 
+   private void copyTo(Domain result) {
+     super.copyTo(result);
+ 
+     result.containsUnit = containsUnit;
+     result.cardUp = cardUp;
+     result.cardDown = cardDown;
+   }
  }

Index: DomainVector.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/DomainVector.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** DomainVector.java	29 Mar 2005 15:33:02 -0000	1.4
--- DomainVector.java	29 Mar 2005 22:51:57 -0000	1.5
***************
*** 98,102 ****
        Domain d = ((Domain)elementData[i]);
        if (d != null) {
!         result.elementData[i] = (Domain)d.clone();
        }
      }
--- 98,102 ----
        Domain d = ((Domain)elementData[i]);
        if (d != null) {
!         result.elementData[i] = d.cloneDomain();
        }
      }

Index: Satisfier.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/Satisfier.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Satisfier.java	29 Mar 2005 15:33:03 -0000	1.2
--- Satisfier.java	29 Mar 2005 22:51:57 -0000	1.3
***************
*** 45,49 ****
        }
      }
!     Domain dx = (Domain)domains.getDomain(x).clone();
      for (int a = dx.getLowestSetBit();
           a >= 0;
--- 45,49 ----
        }
      }
!     Domain dx = domains.getDomain(x).cloneDomain();
      for (int a = dx.getLowestSetBit();
           a >= 0;
***************
*** 89,93 ****
        throw LowlevelUnsatisfiable.instance;
      }
!     Domain dx = (Domain)domains.getDomain(x).clone();
      // iterate through the elements of dx
      for (int a = dx.getLowestSetBit();
--- 89,93 ----
        throw LowlevelUnsatisfiable.instance;
      }
!     Domain dx = domains.getDomain(x).cloneDomain();
      // iterate through the elements of dx
      for (int a = dx.getLowestSetBit();

Index: BitVector.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/BitVector.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** BitVector.java	17 Apr 2004 17:12:11 -0000	1.10
--- BitVector.java	29 Mar 2005 22:51:57 -0000	1.11
***************
*** 15,19 ****
      allocating the array)
   **/
! public class BitVector implements Cloneable, java.io.Serializable {
    private final static int BITS_PER_UNIT = 6;
    private final static int MASK = (1<<BITS_PER_UNIT)-1;
--- 15,19 ----
      allocating the array)
   **/
! public class BitVector implements java.io.Serializable {
    private final static int BITS_PER_UNIT = 6;
    private final static int MASK = (1<<BITS_PER_UNIT)-1;
***************
*** 526,537 ****
     * Clones the BitVector.
     */
!   final public Object clone() {
!     BitVector result = null;
!     try {
!       result = (BitVector) super.clone();
!     } catch (CloneNotSupportedException e) {
!       throw new InternalError("this shouldn't happen, since we are Cloneable");
!     }
  
      if (bits1 == null)
        result.bits0 = bits0;
--- 526,536 ----
     * Clones the BitVector.
     */
!   public BitVector cloneVector() {
!     BitVector result = new BitVector();
!     this.copyTo(result);
!     return result;
!   }
  
+   public void copyTo(BitVector result) {
      if (bits1 == null)
        result.bits0 = bits0;
***************
*** 543,547 ****
  	System.arraycopy(bits1, 0, result.bits1, 0, n);
        }
-     return result;
    }
  
--- 542,545 ----

Index: K0.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/K0.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** K0.java	29 Mar 2005 15:33:02 -0000	1.25
--- K0.java	29 Mar 2005 22:51:57 -0000	1.26
***************
*** 1272,1276 ****
      for (int iid = 0; iid < nInterfaces(); iid++) {
        BitVector I_impls = getInterface(iid).implementors;
!       rigidImplementors[iid] = (BitVector)I_impls.clone();
        for (int x = I_impls.getLowestSetBit();
             x != BitVector.UNDEFINED_INDEX;
--- 1272,1276 ----
      for (int iid = 0; iid < nInterfaces(); iid++) {
        BitVector I_impls = getInterface(iid).implementors;
!       rigidImplementors[iid] = I_impls.cloneVector();
        for (int x = I_impls.getLowestSetBit();
             x != BitVector.UNDEFINED_INDEX;
***************
*** 1358,1362 ****
          this.savedC = (BitMatrix) K0.this.C.clone();
  
!       this.savedGarbage = (BitVector)K0.this.garbage.clone();
        this.savedDomains = (DomainVector)K0.this.domains.clone();
        /*
--- 1358,1362 ----
          this.savedC = (BitMatrix) K0.this.C.clone();
  
!       this.savedGarbage = K0.this.garbage.cloneVector();
        this.savedDomains = (DomainVector)K0.this.domains.clone();
        /*

Index: BitMatrix.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/BitMatrix.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** BitMatrix.java	6 Apr 2003 19:00:17 -0000	1.8
--- BitMatrix.java	29 Mar 2005 22:51:58 -0000	1.9
***************
*** 286,290 ****
  			cyclicmask.set(index[tempsp]);
  		      } while (index[tempsp--] != nextbitpos);
! 		      current = (BitVector)current.clone();
  		      current.andNot(cyclicmask);
  		      bitpos[stackpos] = 0;
--- 286,290 ----
  			cyclicmask.set(index[tempsp]);
  		      } while (index[tempsp--] != nextbitpos);
! 		      current = current.cloneVector();
  		      current.andNot(cyclicmask);
  		      bitpos[stackpos] = 0;
***************
*** 331,335 ****
          if (row != null) {
            if (!row.isEmpty())
! 	    v[i] = (BitVector) row.clone();
            else
   	    v[i] = null;
--- 331,335 ----
          if (row != null) {
            if (!row.isEmpty())
! 	    v[i] = row.cloneVector();
            else
   	    v[i] = null;



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click