|
From: <jom...@us...> - 2014-11-03 10:51:52
|
Revision: 1818
http://sourceforge.net/p/jason/svn/1818
Author: jomifred
Date: 2014-11-03 10:51:43 +0000 (Mon, 03 Nov 2014)
Log Message:
-----------
copy hash code while clonning
Modified Paths:
--------------
trunk/src/jason/asSemantics/Agent.java
trunk/src/jason/asSyntax/ListTermImpl.java
trunk/src/jason/asSyntax/LiteralImpl.java
trunk/src/jason/asSyntax/PredicateIndicator.java
trunk/src/jason/asSyntax/Structure.java
trunk/src/jason/asSyntax/UnnamedVar.java
trunk/src/jason/asSyntax/VarTerm.java
Modified: trunk/src/jason/asSemantics/Agent.java
===================================================================
--- trunk/src/jason/asSemantics/Agent.java 2014-10-19 18:06:01 UTC (rev 1817)
+++ trunk/src/jason/asSemantics/Agent.java 2014-11-03 10:51:43 UTC (rev 1818)
@@ -508,14 +508,14 @@
// if l is not a rule and has free vars (like l(X)), convert it into a rule like "l(X) :- true."
if (!b.isRule() && !b.isGround())
b = new Rule(b,Literal.LTrue);
-
- b = (Literal)b.capply(null); // to solve arithmetic expressions
// does not do BRF for rules (and so do not produce events +bel for rules)
- if (b.isRule())
+ if (b.isRule()) {
getBB().add(b);
- else
+ } else {
+ b = (Literal)b.capply(null); // to solve arithmetic expressions
addBel(b);
+ }
}
initialBels.clear();
}
Modified: trunk/src/jason/asSyntax/ListTermImpl.java
===================================================================
--- trunk/src/jason/asSyntax/ListTermImpl.java 2014-10-19 18:06:01 UTC (rev 1817)
+++ trunk/src/jason/asSyntax/ListTermImpl.java 2014-11-03 10:51:43 UTC (rev 1818)
@@ -89,6 +89,7 @@
ListTermImpl t = new ListTermImpl();
if (term != null) t.term = this.term.clone();
if (next != null) t.next = this.next.clone();
+ t.hashCodeCache = this.hashCodeCache;
return t;
}
Modified: trunk/src/jason/asSyntax/LiteralImpl.java
===================================================================
--- trunk/src/jason/asSyntax/LiteralImpl.java 2014-10-19 18:06:01 UTC (rev 1817)
+++ trunk/src/jason/asSyntax/LiteralImpl.java 2014-11-03 10:51:43 UTC (rev 1818)
@@ -130,7 +130,9 @@
@Override
public Term clone() {
- return new LiteralImpl(this);
+ Literal l = new LiteralImpl(this);
+ l.hashCodeCache = this.hashCodeCache;
+ return l;
}
@Override
Modified: trunk/src/jason/asSyntax/PredicateIndicator.java
===================================================================
--- trunk/src/jason/asSyntax/PredicateIndicator.java 2014-10-19 18:06:01 UTC (rev 1817)
+++ trunk/src/jason/asSyntax/PredicateIndicator.java 2014-11-03 10:51:43 UTC (rev 1818)
@@ -57,9 +57,8 @@
}
private int calcHash() {
- final int PRIME = 31;
- int t = PRIME * arity;
- if (functor != null) t = PRIME * t + functor.hashCode();
+ int t = 31 * arity;
+ if (functor != null) t = 31 * t + functor.hashCode();
return t;
}
Modified: trunk/src/jason/asSyntax/Structure.java
===================================================================
--- trunk/src/jason/asSyntax/Structure.java 2014-10-19 18:06:01 UTC (rev 1817)
+++ trunk/src/jason/asSyntax/Structure.java 2014-11-03 10:51:43 UTC (rev 1818)
@@ -209,7 +209,9 @@
/** make a deep copy of the terms */
public Term clone() {
- return new Structure(this);
+ Structure s = new Structure(this);
+ s.hashCodeCache = this.hashCodeCache;
+ return s;
}
@Override
Modified: trunk/src/jason/asSyntax/UnnamedVar.java
===================================================================
--- trunk/src/jason/asSyntax/UnnamedVar.java 2014-10-19 18:06:01 UTC (rev 1817)
+++ trunk/src/jason/asSyntax/UnnamedVar.java 2014-11-03 10:51:43 UTC (rev 1818)
@@ -66,6 +66,7 @@
public Term clone() {
UnnamedVar newv = new UnnamedVar(getFunctor());
newv.myId = this.myId;
+ newv.hashCodeCache = this.hashCodeCache;
if (hasAnnot())
newv.addAnnots(this.getAnnots().cloneLT());
return newv;
Modified: trunk/src/jason/asSyntax/VarTerm.java
===================================================================
--- trunk/src/jason/asSyntax/VarTerm.java 2014-10-19 18:06:01 UTC (rev 1817)
+++ trunk/src/jason/asSyntax/VarTerm.java 2014-11-03 10:51:43 UTC (rev 1818)
@@ -82,6 +82,13 @@
}
@Override
+ protected int calcHashCode() {
+ int result = getFunctor().hashCode();
+ if (negated()) result += 3271;
+ return result;
+ }
+
+ @Override
public Term capply(Unifier u) {
if (u != null) {
Term vl = u.get(this);
@@ -124,7 +131,8 @@
// do not call constructor with term parameter!
VarTerm t = new VarTerm(super.getFunctor());
t.setNegated(!negated());
- t.srcInfo = this.srcInfo;
+ t.srcInfo = this.srcInfo;
+ t.hashCodeCache = this.hashCodeCache;
if (hasAnnot())
t.setAnnots(getAnnots().cloneLT());
return t;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|