3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

Java API: 32-bit issues and bugfixes.

Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
This commit is contained in:
Christoph M. Wintersteiger 2012-11-30 22:31:07 +00:00
parent 9b2236361c
commit 692593baaa
8 changed files with 119 additions and 71 deletions

View file

@ -37,10 +37,15 @@ public class AST extends Z3Object
**/
public boolean equals(Object o)
{
AST casted = (AST) o;
if (casted == null)
return false;
return this == casted;
AST casted = null;
try {
casted = AST.class.cast(o);
} catch (ClassCastException e) {
return false;
}
return this.NativeObject() == casted.NativeObject();
}
/**
@ -53,18 +58,20 @@ public class AST extends Z3Object
{
if (other == null)
return 1;
AST oAST = (AST) other;
if (oAST == null)
return 1;
else
{
if (Id() < oAST.Id())
return -1;
else if (Id() > oAST.Id())
return +1;
else
return 0;
}
AST oAST = null;
try {
AST.class.cast(other);
} catch (ClassCastException e) {
return 1;
}
if (Id() < oAST.Id())
return -1;
else if (Id() > oAST.Id())
return +1;
else
return 0;
}
/**

View file

@ -524,7 +524,7 @@ public class Context extends IDisposable
public Expr MkConst(FuncDecl f) throws Z3Exception
{
return MkApp(f, (Expr) null);
return MkApp(f, (Expr[]) null);
}
/**

View file

@ -16,7 +16,6 @@ public class EnumSort extends Sort
**/
public FuncDecl[] ConstDecls()
{
return _constdecls;
}
@ -25,7 +24,6 @@ public class EnumSort extends Sort
**/
public Expr[] Consts()
{
return _consts;
}
@ -34,7 +32,6 @@ public class EnumSort extends Sort
**/
public FuncDecl[] TesterDecls()
{
return _testerdecls;
}
@ -53,12 +50,12 @@ public class EnumSort extends Sort
n_constdecls, n_testers));
_constdecls = new FuncDecl[n];
for (int i = 0; i < n; i++)
_constdecls[i] = new FuncDecl(ctx, n_constdecls[i]);
_constdecls[i] = new FuncDecl(ctx, n_constdecls[i]);
_testerdecls = new FuncDecl[n];
for (int i = 0; i < n; i++)
_testerdecls[i] = new FuncDecl(ctx, n_testers[i]);
_testerdecls[i] = new FuncDecl(ctx, n_testers[i]);
_consts = new Expr[n];
for (int i = 0; i < n; i++)
_consts[i] = ctx.MkApp(_constdecls[i], (Expr)null);
_consts[i] = ctx.MkApp(_constdecls[i], (Expr[])null);
}
};

View file

@ -159,13 +159,14 @@ public class Quantifier extends BoolExpr
.NativeObject()));
} else
{
setNativeObject(Native.mkQuantifierEx(ctx.nCtx(), (isForall) ? true
: false, weight, AST.GetNativeObject(quantifierID), AST
.GetNativeObject(skolemID), AST.ArrayLength(patterns), AST
.ArrayToNative(patterns), AST.ArrayLength(noPatterns), AST
.ArrayToNative(noPatterns), AST.ArrayLength(sorts), AST
.ArrayToNative(sorts), Symbol.ArrayToNative(names), body
.NativeObject()));
setNativeObject(Native.mkQuantifierEx(ctx.nCtx(),
(isForall) ? true : false, weight, AST.GetNativeObject(quantifierID),
AST.GetNativeObject(skolemID),
AST.ArrayLength(patterns), AST.ArrayToNative(patterns),
AST.ArrayLength(noPatterns), AST.ArrayToNative(noPatterns),
AST.ArrayLength(sorts), AST.ArrayToNative(sorts),
Symbol.ArrayToNative(names),
body.NativeObject()));
}
}

View file

@ -39,10 +39,15 @@ public class Sort extends AST
**/
public boolean equals(Object o)
{
Sort casted = (Sort) o;
if (casted == null)
return false;
return this == casted;
Sort casted = null;
try {
casted = Sort.class.cast(o);
} catch (ClassCastException e) {
return false;
}
return this.NativeObject() == casted.NativeObject();
}
/**

View file

@ -104,7 +104,7 @@ public class Z3Object extends IDisposable
return null;
long[] an = new long[a.length];
for (int i = 0; i < a.length; i++)
an[i] = a[i].NativeObject();
an[i] = (a[i] == null) ? 0 : a[i].NativeObject();
return an;
}