From bb007630d7a82210cbd0d78eab893e4f3b22679c Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Thu, 29 Aug 2013 05:35:45 +0000 Subject: more carefull tracking of references in the Java binding --- src/runtime/java/org/grammaticalframework/pgf/Expr.java | 6 ++++-- .../java/org/grammaticalframework/pgf/ExprIterator.java | 14 +++++++------- .../java/org/grammaticalframework/pgf/ExprProb.java | 4 ++-- 3 files changed, 13 insertions(+), 11 deletions(-) (limited to 'src/runtime/java/org') diff --git a/src/runtime/java/org/grammaticalframework/pgf/Expr.java b/src/runtime/java/org/grammaticalframework/pgf/Expr.java index 0dc4d1c4b..bd2c0877e 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/Expr.java +++ b/src/runtime/java/org/grammaticalframework/pgf/Expr.java @@ -2,13 +2,15 @@ package org.grammaticalframework.pgf; public class Expr { private Pool pool; + private PGF gr; private long ref; - Expr(Pool pool, long ref) { + Expr(Pool pool, PGF gr, long ref) { this.pool = pool; + this.gr = gr; this.ref = ref; } - + public String toString() { return showExpr(ref); } diff --git a/src/runtime/java/org/grammaticalframework/pgf/ExprIterator.java b/src/runtime/java/org/grammaticalframework/pgf/ExprIterator.java index c2dc8438b..6babda66d 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/ExprIterator.java +++ b/src/runtime/java/org/grammaticalframework/pgf/ExprIterator.java @@ -3,14 +3,14 @@ package org.grammaticalframework.pgf; import java.util.*; class ExprIterator implements Iterator { - private Concr concr; + private PGF gr; private Pool pool, out_pool; private long ref; private ExprProb ep; private boolean fetched; - public ExprIterator(Concr concr, long pool, long out_pool, long ref) { - this.concr = concr; + public ExprIterator(PGF gr, long pool, long out_pool, long ref) { + this.gr = gr; this.pool = new Pool(pool); this.out_pool = new Pool(out_pool); this.ref = ref; @@ -18,20 +18,20 @@ class ExprIterator implements Iterator { this.fetched = false; } - private native ExprProb fetchExprProb(long ref, Pool out_pool); + private native ExprProb fetchExprProb(long ref, Pool pool, PGF gr); private void fetch() { if (!fetched) { - ep = fetchExprProb(ref, out_pool); + ep = fetchExprProb(ref, out_pool, gr); fetched = true; } } - + public boolean hasNext() { fetch(); return (ep != null); } - + public ExprProb next() { fetch(); fetched = false; diff --git a/src/runtime/java/org/grammaticalframework/pgf/ExprProb.java b/src/runtime/java/org/grammaticalframework/pgf/ExprProb.java index d7d4f1cdf..676da13a8 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/ExprProb.java +++ b/src/runtime/java/org/grammaticalframework/pgf/ExprProb.java @@ -9,8 +9,8 @@ public class ExprProb { this.prob = prob; } - private static ExprProb mkExprProb(Pool pool, long expr, double prob) { - return new ExprProb(new Expr(pool, expr), prob); + private static ExprProb mkExprProb(Pool pool, PGF gr, long expr, double prob) { + return new ExprProb(new Expr(pool, gr, expr), prob); } public Expr getExpr() { -- cgit v1.2.3