diff options
-rwxr-xr-x | make/build.xml | 11 | ||||
-rw-r--r-- | src/java/com/jogamp/common/util/IntIntHashMap.java | 20 |
2 files changed, 24 insertions, 7 deletions
diff --git a/make/build.xml b/make/build.xml index 74b8d9f..a9a7d6a 100755 --- a/make/build.xml +++ b/make/build.xml @@ -437,7 +437,7 @@ <param name="map.name" value="IntLongHashMap"/> <param name="map.key" value="int"/> <param name="map.value" value="long"/> - <param name="map.null" value="0"/> + <param name="map.null" value="-1"/> </antcall> <!-- Long*Maps --> @@ -452,14 +452,14 @@ <param name="map.name" value="LongIntHashMap"/> <param name="map.key" value="long"/> <param name="map.value" value="int"/> - <param name="map.null" value="0"/> + <param name="map.null" value="-1"/> </antcall> <antcall target="create-map" inheritrefs="true"> <param name="map.name" value="LongLongHashMap"/> <param name="map.key" value="long"/> <param name="map.value" value="long"/> - <param name="map.null" value="0"/> + <param name="map.null" value="-1"/> </antcall> </target> @@ -473,7 +473,7 @@ <replaceregex pattern="@see ${map.name}" replace="@see IntIntHashMap"/> <replaceregex pattern="/\*value\*/int/\*value\*/" replace="${map.value}"/> <replaceregex pattern="/\*key\*/int/\*key\*/" replace="${map.key}"/> - <replaceregex pattern="/\*null\*/0/\*null\*/" replace="${map.null}"/> + <replaceregex pattern="/\*null\*/-1/\*null\*/" replace="${map.null}"/> </filterchain> <!-- no clue why we have to do this twice... otherwise it will only replace one token per line --> <filterchain> @@ -619,6 +619,9 @@ <fileset dir="${classes-cdc}"> <include name="com/jogamp/gluegen/runtime/*.class" /> <include name="com/jogamp/gluegen/runtime/opengl/*.class" /> + <include name="com/jogamp/common/impl/*.class" /> + <include name="com/jogamp/common/jvm/*.class" /> + <include name="com/jogamp/common/util/*.class" /> <include name="com/jogamp/common/nio/*.class" /> <include name="com/jogamp/common/os/*.class" /> <include name="com/jogamp/common/*.class" /> diff --git a/src/java/com/jogamp/common/util/IntIntHashMap.java b/src/java/com/jogamp/common/util/IntIntHashMap.java index f9b0f2d..1288ad4 100644 --- a/src/java/com/jogamp/common/util/IntIntHashMap.java +++ b/src/java/com/jogamp/common/util/IntIntHashMap.java @@ -58,6 +58,7 @@ public class /*name*/IntIntHashMap/*name*/ { private int mask; private int capacity; private int threshold; + private /*value*/int/*value*/ keyNotFoundValue = /*null*/-1/*null*/; public /*name*/IntIntHashMap/*name*/() { this(16, 0.75f); @@ -87,6 +88,19 @@ public class /*name*/IntIntHashMap/*name*/ { this.mask = capacity - 1; } + /** + * Sets the new key not found value. + * For primitive types (int, long) the default is -1, + * for Object types, the default is null. + * + * @return the previous key not found value + */ + public /*value*/int/*value*/ setKeyNotFoundValue(/*value*/int/*value*/ newKeyNotFoundValue) { + /*value*/int/*value*/ t = keyNotFoundValue; + keyNotFoundValue = newKeyNotFoundValue; + return t; + } + public boolean containsValue(/*value*/int/*value*/ value) { Entry[] table = this.table; for (int i = table.length; i-- > 0;) { @@ -118,7 +132,7 @@ public class /*name*/IntIntHashMap/*name*/ { return e.value; } } - return /*null*/0/*null*/; + return keyNotFoundValue; } // @SuppressWarnings(value="cast") @@ -158,7 +172,7 @@ public class /*name*/IntIntHashMap/*name*/ { threshold = (int) (newCapacity * loadFactor); mask = capacity - 1; } - return /*null*/0/*null*/; + return keyNotFoundValue; } // @SuppressWarnings(value="cast") @@ -180,7 +194,7 @@ public class /*name*/IntIntHashMap/*name*/ { prev = e; e = next; } - return /*null*/0/*null*/; + return keyNotFoundValue; } public int size() { |