summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gee/concurrentset.vala3
-rw-r--r--gee/lazy.vala3
-rw-r--r--gee/priorityqueue.vala7
-rw-r--r--gee/promise.vala12
4 files changed, 16 insertions, 9 deletions
diff --git a/gee/concurrentset.vala b/gee/concurrentset.vala
index dc4b249..c5bfce9 100644
--- a/gee/concurrentset.vala
+++ b/gee/concurrentset.vala
@@ -34,6 +34,7 @@ public class Gee.ConcurrentSet<G> : AbstractSortedSet<G> {
compare_func = Functions.get_compare_func_for (typeof (G));
}
_cmp = (owned)compare_func;
+ _head = new Tower<G>.head ();
}
~ConcurrentSet () {
@@ -246,7 +247,7 @@ public class Gee.ConcurrentSet<G> : AbstractSortedSet<G> {
#endif
private int _size = 0;
- private Tower<G> _head = new Tower<G>.head ();
+ private Tower<G> _head;
private CompareDataFunc<G>? _cmp;
private const int _MAX_HEIGHT = 31;
private static Private rand = new Private((ptr) => {
diff --git a/gee/lazy.vala b/gee/lazy.vala
index 00c34ba..5e7bc36 100644
--- a/gee/lazy.vala
+++ b/gee/lazy.vala
@@ -75,6 +75,7 @@ public class Gee.Lazy<G> {
private class Future<G> : Object, Gee.Future<G> {
public Future (Lazy<G> lazy) {
_lazy = lazy;
+ _when_done = new Gee.Future.SourceFuncArrayElement<G>[0];
}
public bool ready {
@@ -160,7 +161,7 @@ public class Gee.Lazy<G> {
private Cond _eval = Cond ();
private Lazy<G> _lazy;
private State _state = State.UNLOCK;
- private Gee.Future.SourceFuncArrayElement<G>[]? _when_done = new Gee.Future.SourceFuncArrayElement<G>[0];
+ private Gee.Future.SourceFuncArrayElement<G>[]? _when_done;
private enum State {
UNLOCK,
EVAL
diff --git a/gee/priorityqueue.vala b/gee/priorityqueue.vala
index 31be4ab..e32b05a 100644
--- a/gee/priorityqueue.vala
+++ b/gee/priorityqueue.vala
@@ -60,11 +60,7 @@ public class Gee.PriorityQueue<G> : Gee.AbstractQueue<G> {
private Type2Node<G>? _lm_head = null;
private Type2Node<G>? _lm_tail = null;
private Type1Node<G>? _p = null;
-#if VALA_0_16
- private Type1Node<G>?[] _a = new Type1Node<G>?[0];
-#else
- private Type1Node<G>?[] _a = new Type1Node<G>[0];
-#endif
+ private Type1Node<G>?[] _a;
private NodePair<G>? _lp_head = null;
private unowned NodePair<G>? _lp_tail = null;
private bool[] _b = new bool[0];
@@ -87,6 +83,7 @@ public class Gee.PriorityQueue<G> : Gee.AbstractQueue<G> {
compare_func = Functions.get_compare_func_for (typeof (G));
}
_compare_func = (owned)compare_func;
+ _a = new Type1Node<G>?[0];
}
/**
diff --git a/gee/promise.vala b/gee/promise.vala
index 90eac07..401014d 100644
--- a/gee/promise.vala
+++ b/gee/promise.vala
@@ -34,6 +34,10 @@ using GLib;
* @since 0.11.0
*/
public class Gee.Promise<G> {
+ public Promise () {
+ _future = new Future<G> ();
+ }
+
~Promise () {
_future.abandon ();
}
@@ -66,6 +70,10 @@ public class Gee.Promise<G> {
}
private class Future<G> : Object, Gee.Future<G> {
+ public Future () {
+ _when_done = new Gee.Future.SourceFuncArrayElement<G>[0];
+ }
+
public bool ready {
get {
_mutex.lock ();
@@ -196,7 +204,7 @@ public class Gee.Promise<G> {
private State _state;
private G? _value;
private GLib.Error? _exception;
- private Gee.Future.SourceFuncArrayElement<G>[]? _when_done = new Gee.Future.SourceFuncArrayElement<G>[0];
+ private Gee.Future.SourceFuncArrayElement<G>[]? _when_done;
private enum State {
INIT,
@@ -205,6 +213,6 @@ public class Gee.Promise<G> {
READY
}
}
- private Future<G> _future = new Future<G>();
+ private Future<G> _future;
}