Update of /cvsroot/nice/Nice/src/mlsub/typing/lowlevel
In directory sc8-pr-cvs1:/tmp/cvs-serv7585/F:/nice/src/mlsub/typing/lowlevel
Modified Files:
Domain.java DomainVector.java
Log Message:
Fix of bug #738542(infinite recursion in enumerating the domains)
Index: Domain.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/Domain.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Domain.java 14 Jun 2000 13:32:44 -0000 1.1
--- Domain.java 23 May 2003 13:05:29 -0000 1.2
***************
*** 33,37 ****
// size of this domain (possibly including unit)
! private int cardinal() {
if (containsUnit) {
return super.bitCount() + 1;
--- 33,37 ----
// size of this domain (possibly including unit)
! int cardinal() {
if (containsUnit) {
return super.bitCount() + 1;
***************
*** 202,206 ****
* Iteration thru the domain elements
**/
! int getFirstBit() {
int result = super.getLowestSetBit();
if (result == UNDEFINED_INDEX && containsUnit) {
--- 202,206 ----
* Iteration thru the domain elements
**/
! int getFirstBit() { // unused method ???
int result = super.getLowestSetBit();
if (result == UNDEFINED_INDEX && containsUnit) {
Index: DomainVector.java
===================================================================
RCS file: /cvsroot/nice/Nice/src/mlsub/typing/lowlevel/DomainVector.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** DomainVector.java 22 Aug 2002 16:58:17 -0000 1.2
--- DomainVector.java 23 May 2003 13:05:30 -0000 1.3
***************
*** 182,187 ****
/**
* Choose a non-null, non-singleton, domain and return its index. Return -1
! * if all the domains are instantiated. Assume the field cardUp or cardDown
! * are correct in the domains.
**/
public int chooseDomain() {
--- 182,186 ----
/**
* Choose a non-null, non-singleton, domain and return its index. Return -1
! * if all the domains are instantiated.
**/
public int chooseDomain() {
***************
*** 201,207 ****
if (set == null || set.get(i + offset)) {
Domain d = (Domain)elementAt(i);
! if (d != null && d.cardUp < leastCard && d.cardUp > 1) {
! least = i + offset;
! leastCard = d.cardUp;
}
}
--- 200,209 ----
if (set == null || set.get(i + offset)) {
Domain d = (Domain)elementAt(i);
! if (d != null){
! int card = d.cardinal();
! if (card < leastCard && card > 1) {
! least = i + offset;
! leastCard = card;
! }
}
}
|