[libgee] Use generics for HashDataFunc and EqualDataFunc, fixes bug 680491



commit 5af26e45281b9ac518d9fcdde4b0bb4cf8563bdf
Author: Evan Nemerson <evan coeus-group com>
Date:   Mon Jul 23 15:00:20 2012 -0700

    Use generics for HashDataFunc and EqualDataFunc, fixes bug 680491

 gee/abstractmultimap.vala |    2 +-
 gee/arraylist.vala        |    4 ++--
 gee/arrayqueue.vala       |    4 ++--
 gee/concurrentlist.vala   |    4 ++--
 gee/hashmap.vala          |    6 +++---
 gee/hashmultimap.vala     |    4 ++--
 gee/hashmultiset.vala     |    6 +++---
 gee/hashset.vala          |    4 ++--
 gee/linkedlist.vala       |    4 ++--
 gee/treemap.vala          |    4 ++--
 10 files changed, 21 insertions(+), 21 deletions(-)
---
diff --git a/gee/abstractmultimap.vala b/gee/abstractmultimap.vala
index 61f8a01..1581629 100644
--- a/gee/abstractmultimap.vala
+++ b/gee/abstractmultimap.vala
@@ -49,7 +49,7 @@ public abstract class Gee.AbstractMultiMap<K,V> : Object, MultiMap<K,V> {
 
 	protected abstract MultiSet<K> create_multi_key_set ();
 
-	protected abstract EqualDataFunc get_value_equal_func ();
+	protected abstract EqualDataFunc<V> get_value_equal_func ();
 
 	public Set<K> get_keys () {
 		return _storage_map.keys;
diff --git a/gee/arraylist.vala b/gee/arraylist.vala
index 3f7018e..17c9f6b 100644
--- a/gee/arraylist.vala
+++ b/gee/arraylist.vala
@@ -55,7 +55,7 @@ public class Gee.ArrayList<G> : AbstractBidirList<G> {
 	/**
 	 * The elements' equality testing function.
 	 */
-	public EqualDataFunc equal_func { private set; get; }
+	public EqualDataFunc<G> equal_func { private set; get; }
 
 	internal G[] _items = new G[4];
 	internal int _size;
@@ -71,7 +71,7 @@ public class Gee.ArrayList<G> : AbstractBidirList<G> {
 	 *
 	 * @param equal_func an optional element equality testing function
 	 */
-	public ArrayList (owned EqualDataFunc? equal_func = null) {
+	public ArrayList (owned EqualDataFunc<G>? equal_func = null) {
 		if (equal_func == null) {
 			equal_func = Functions.get_equal_func_for (typeof (G));
 		}
diff --git a/gee/arrayqueue.vala b/gee/arrayqueue.vala
index 2ab16b4..4e08623 100644
--- a/gee/arrayqueue.vala
+++ b/gee/arrayqueue.vala
@@ -40,7 +40,7 @@ public class Gee.ArrayQueue<G> : Gee.AbstractQueue<G>, Deque<G> {
 	 *
 	 * @param equal_func an optional element equality testing function
 	 */
-	public ArrayQueue (owned EqualDataFunc? equal_func = null) {
+	public ArrayQueue (owned EqualDataFunc<G>? equal_func = null) {
 		if (equal_func == null) {
 			equal_func = Functions.get_equal_func_for (typeof (G));
 		}
@@ -48,7 +48,7 @@ public class Gee.ArrayQueue<G> : Gee.AbstractQueue<G>, Deque<G> {
 		this._items = new G[10];
 	}
 
-	public EqualDataFunc equal_func { private set; get; }
+	public EqualDataFunc<G> equal_func { private set; get; }
 
 	/**
 	 * { inheritDoc}
diff --git a/gee/concurrentlist.vala b/gee/concurrentlist.vala
index e57c7ec..6d8e468 100644
--- a/gee/concurrentlist.vala
+++ b/gee/concurrentlist.vala
@@ -32,7 +32,7 @@ public class Gee.ConcurrentList<G> : AbstractList<G> {
 	/**
 	 * The elements' equality testing function.
 	 */
-	public Gee.EqualDataFunc equal_func { private set; get; }
+	public Gee.EqualDataFunc<G> equal_func { private set; get; }
 
 	/**
 	 * Construct new, empty single linked list
@@ -42,7 +42,7 @@ public class Gee.ConcurrentList<G> : AbstractList<G> {
 	 *
 	 * @param equal_func an optional element equality testing function
 	 */
-	public ConcurrentList (owned Gee.EqualDataFunc? equal_func = null) {
+	public ConcurrentList (owned Gee.EqualDataFunc<G>? equal_func = null) {
 		if (equal_func == null)
 			equal_func = Gee.Functions.get_equal_func_for (typeof (G));
 		this.equal_func = (owned)equal_func;
diff --git a/gee/hashmap.vala b/gee/hashmap.vala
index 15e60f1..16234c8 100644
--- a/gee/hashmap.vala
+++ b/gee/hashmap.vala
@@ -101,12 +101,12 @@ public class Gee.HashMap<K,V> : Gee.AbstractMap<K,V> {
 	/**
 	 * The keys' equality testing function.
 	 */
-	public EqualDataFunc key_equal_func { private set; get; }
+	public EqualDataFunc<K> key_equal_func { private set; get; }
 
 	/**
 	 * The values' equality testing function.
 	 */
-	public EqualDataFunc value_equal_func { private set; get; }
+	public EqualDataFunc<V> value_equal_func { private set; get; }
 
 	private int _array_size;
 	private int _nnodes;
@@ -132,7 +132,7 @@ public class Gee.HashMap<K,V> : Gee.AbstractMap<K,V> {
 	 * @param key_equal_func an optional key equality testing function
 	 * @param value_equal_func an optional value equality testing function
 	 */
-	public HashMap (owned HashDataFunc? key_hash_func = null, owned EqualDataFunc? key_equal_func = null, owned EqualDataFunc? value_equal_func = null) {
+	public HashMap (owned HashDataFunc<K>? key_hash_func = null, owned EqualDataFunc<K>? key_equal_func = null, owned EqualDataFunc<V>? value_equal_func = null) {
 		if (key_hash_func == null) {
 			key_hash_func = Functions.get_hash_func_for (typeof (K));
 		}
diff --git a/gee/hashmultimap.vala b/gee/hashmultimap.vala
index 5be67bd..08fc5cd 100644
--- a/gee/hashmultimap.vala
+++ b/gee/hashmultimap.vala
@@ -28,13 +28,13 @@ public class Gee.HashMultiMap<K,V> : AbstractMultiMap<K,V> {
 		get { return ((HashMap<K, Set<V>>) _storage_map).key_hash_func; }
 	}
 
-	public EqualDataFunc key_equal_func {
+	public EqualDataFunc<K> key_equal_func {
 		get { return ((HashMap<K, Set<V>>) _storage_map).key_equal_func; }
 	}
 
 	public HashDataFunc<V> value_hash_func { private set; get; }
 
-	public EqualDataFunc value_equal_func { private set; get; }
+	public EqualDataFunc<V> value_equal_func { private set; get; }
 
 	/**
 	 * Constructs a new, empty hash multimap.
diff --git a/gee/hashmultiset.vala b/gee/hashmultiset.vala
index 76d7954..2e59c07 100644
--- a/gee/hashmultiset.vala
+++ b/gee/hashmultiset.vala
@@ -24,11 +24,11 @@
  * Hash table implementation of the { link MultiSet} interface.
  */
 public class Gee.HashMultiSet<G> : AbstractMultiSet<G> {
-	public HashDataFunc hash_func {
+	public HashDataFunc<G> hash_func {
 		get { return ((HashMap<G, int>) _storage_map).key_hash_func; }
 	}
 
-	public EqualDataFunc equal_func {
+	public EqualDataFunc<G> equal_func {
 		get { return ((HashMap<G, int>) _storage_map).key_equal_func; }
 	}
 
@@ -41,7 +41,7 @@ public class Gee.HashMultiSet<G> : AbstractMultiSet<G> {
 	 * @param hash_func an optional element hash function
 	 * @param equal_func an optional element equality testing function
 	 */
-	public HashMultiSet (HashDataFunc? hash_func = null, EqualDataFunc? equal_func = null) {
+	public HashMultiSet (HashDataFunc<G>? hash_func = null, EqualDataFunc<G>? equal_func = null) {
 		base (new HashMap<G, int> (hash_func, equal_func));
 	}
 }
diff --git a/gee/hashset.vala b/gee/hashset.vala
index 9272aa2..427e84e 100644
--- a/gee/hashset.vala
+++ b/gee/hashset.vala
@@ -25,8 +25,8 @@
 using GLib;
 
 namespace Gee {
-	public delegate uint HashDataFunc (void* v);
-	public delegate bool EqualDataFunc (void* a, void* b);
+	public delegate uint HashDataFunc<T> (T v);
+	public delegate bool EqualDataFunc<T> (T a, T b);
 }
 
 /**
diff --git a/gee/linkedlist.vala b/gee/linkedlist.vala
index 575c63b..7f7ef8a 100644
--- a/gee/linkedlist.vala
+++ b/gee/linkedlist.vala
@@ -41,7 +41,7 @@ public class Gee.LinkedList<G> : AbstractBidirList<G>, Queue<G>, Deque<G> {
 	/**
 	 * The elements' equality testing function.
 	 */
-	public EqualDataFunc equal_func { private set; get; }
+	public EqualDataFunc<G> equal_func { private set; get; }
 
 	/**
 	 * Constructs a new, empty linked list.
@@ -51,7 +51,7 @@ public class Gee.LinkedList<G> : AbstractBidirList<G>, Queue<G>, Deque<G> {
 	 *
 	 * @param equal_func an optional element equality testing function
 	 */
-	public LinkedList (owned EqualDataFunc? equal_func = null) {
+	public LinkedList (owned EqualDataFunc<G>? equal_func = null) {
 		if (equal_func == null) {
 			equal_func = Functions.get_equal_func_for (typeof (G));
 		}
diff --git a/gee/treemap.vala b/gee/treemap.vala
index 942778c..236b839 100644
--- a/gee/treemap.vala
+++ b/gee/treemap.vala
@@ -96,7 +96,7 @@ public class Gee.TreeMap<K,V> : Gee.AbstractBidirSortedMap<K,V> {
 	/**
 	 * The values' equality testing function.
 	 */
-	public EqualDataFunc value_equal_func { private set; get; }
+	public EqualDataFunc<V> value_equal_func { private set; get; }
 
 	private int _size = 0;
 
@@ -114,7 +114,7 @@ public class Gee.TreeMap<K,V> : Gee.AbstractBidirSortedMap<K,V> {
 	 * @param key_compare_func an optional key comparator function
 	 * @param value_equal_func an optional values equality testing function
 	 */
-	public TreeMap (owned CompareDataFunc<K>? key_compare_func = null, owned EqualDataFunc? value_equal_func = null) {
+	public TreeMap (owned CompareDataFunc<K>? key_compare_func = null, owned EqualDataFunc<V>? value_equal_func = null) {
 		if (key_compare_func == null) {
 			key_compare_func = Functions.get_compare_func_for (typeof (K));
 		}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]