Skip to content

Commit e56e136

Browse files
committed
Sync with latest changes
1 parent 4db9c69 commit e56e136

108 files changed

Lines changed: 33809 additions & 403 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ dependencies {
4848
builderImplementation 'com.google.code.gson:gson:2.10'
4949
builderImplementation 'de.speiger:Simple-Code-Generator:1.3.0'
5050
testImplementation 'junit:junit:4.12'
51-
testImplementation 'com.google.guava:guava-testlib:31.0.1-jre'
51+
testImplementation 'com.google.guava:guava-testlib:33.6.0-jre'
5252

5353
}
5454

src/builder/java/speiger/src/builder/modules/MapModule.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ public class MapModule extends BaseModule
3636
public static final FunctionDependency ENUM_MAP = MODULE.createDependency("EnumMap").addEntryDependency(IMPLEMENTATION);
3737
public static final FunctionDependency LINKED_ENUM_MAP = MODULE.createDependency("LinkedEnumMap").addEntryDependency(ENUM_MAP).addEntryDependency(ORDERED_MAP);
3838

39+
public static final FunctionDependency REF_MAP = MODULE.createDependency("ReferenceHashMap").addEntryDependency(IMPLEMENTATION);
40+
public static final FunctionDependency LINKED_REF_MAP = MODULE.createDependency("LinkedReferenceMap").addEntryDependency(REF_MAP).addEntryDependency(ORDERED_MAP);
41+
42+
3943
public static final FunctionDependency CONCURRENT_MAP = MODULE.createDependency("ConcurrentMap").addEntryDependency(IMPLEMENTATION);
4044
public static final FunctionDependency AVL_TREE_MAP = MODULE.createDependency("AVLTreeMap").addEntryDependency(SORTED_MAP).addEntryDependency(IMPLEMENTATION);
4145
public static final FunctionDependency RB_TREE_MAP = MODULE.createDependency("RBTreeMap").addEntryDependency(SORTED_MAP).addEntryDependency(IMPLEMENTATION);
@@ -51,7 +55,7 @@ protected void loadVariables() {}
5155
@Override
5256
public List<IDependency> getDependencies(ClassType keyType, ClassType valueType) {
5357
List<IDependency> dependencies = new ArrayList<>(Arrays.asList(MODULE, ORDERED_MAP, SORTED_MAP, IMPLEMENTATION, WRAPPERS, ARRAY_MAP, IMMUTABLE_MAP, HASH_MAP, LINKED_MAP, CUSTOM_MAP, LINKED_CUSTOM_MAP, CONCURRENT_MAP, AVL_TREE_MAP, RB_TREE_MAP));
54-
if(keyType == ClassType.OBJECT) dependencies.addAll(Arrays.asList(ENUM_MAP, LINKED_ENUM_MAP));
58+
if(keyType == ClassType.OBJECT) dependencies.addAll(Arrays.asList(ENUM_MAP, LINKED_ENUM_MAP, REF_MAP, LINKED_REF_MAP));
5559
return dependencies;
5660
}
5761

@@ -70,6 +74,10 @@ protected void loadFlags()
7074
if(AVL_TREE_MAP.isEnabled()) addFlag("AVL_TREE_MAP_FEATURE");
7175
if(RB_TREE_MAP.isEnabled()) addFlag("RB_TREE_MAP_FEATURE");
7276

77+
if(REF_MAP.isEnabled()) addFlag("REF_MAP_FEATURE");
78+
if(LINKED_REF_MAP.isEnabled()) addFlag("LINKED_REF_MAP_FEATURE");
79+
80+
7381
if(CONCURRENT_MAP.isEnabled()) addFlag("CONCURRENT_MAP_FEATURE");
7482
if(IMMUTABLE_MAP.isEnabled()) addFlag("IMMUTABLE_MAP_FEATURE");
7583
if(HASH_MAP.isEnabled()) addFlag("MAP_FEATURE");
@@ -85,6 +93,8 @@ protected void loadBlockades()
8593
if(!IMMUTABLE_MAP.isEnabled()) addBlockedFiles("ImmutableOpenHashMap");
8694
if(!CONCURRENT_MAP.isEnabled()) addBlockedFiles("ConcurrentMap", "ConcurrentOpenHashMap");
8795
if(!ORDERED_MAP.isEnabled()) addBlockedFiles("OrderedMap");
96+
if(!REF_MAP.isEnabled()) addBlockedFiles("ReferenceHashMap");
97+
if(!LINKED_REF_MAP.isEnabled()) addBlockedFiles("LinkedReferenceHashMap");
8898
if(!HASH_MAP.isEnabled()) addBlockedFiles("OpenHashMap");
8999
if(!LINKED_MAP.isEnabled()) addBlockedFiles("LinkedOpenHashMap");
90100
if(!CUSTOM_MAP.isEnabled()) addBlockedFiles("OpenCustomHashMap");
@@ -127,6 +137,8 @@ protected void loadRemappers()
127137
addBiRequirement("AbstractMap");
128138
addEnumRequirement("EnumMap");
129139
addEnumRequirement("LinkedEnumMap");
140+
addEnumRequirement("ReferenceHashMap");
141+
addEnumRequirement("LinkedReferenceHashMap");
130142
addBiRequirement("ConcurrentOpenHashMap");
131143
addBiRequirement("ImmutableOpenHashMap");
132144
addBiRequirement("OpenHashMap");
@@ -141,6 +153,8 @@ protected void loadRemappers()
141153
addRemapper("AbstractMap", "Abstract%sMap");
142154
addRemapper("EnumMap", "Enum2%sMap");
143155
addRemapper("LinkedEnumMap", "LinkedEnum2%sMap");
156+
addRemapper("ReferenceHashMap", "Reference2%sHashMap");
157+
addRemapper("LinkedReferenceHashMap", "Reference2%sLinkedHashMap");
144158
addRemapper("ImmutableOpenHashMap", "Immutable%sOpenHashMap");
145159

146160
//Test Classes
@@ -249,6 +263,8 @@ protected void loadClasses()
249263
addBiClassMapper("RB_TREE_MAP", "RBTreeMap", "2");
250264
addFunctionValueMappers("LINKED_ENUM_MAP", valueType.isObject() ? "LinkedEnum2ObjectMap" : "LinkedEnum2%sMap");
251265
addFunctionValueMappers("ENUM_MAP", valueType.isObject() ? "Enum2ObjectMap" : "Enum2%sMap");
266+
addFunctionValueMappers("REF_MAP", valueType.isObject() ? "Reference2ObjectHashMap" : "Reference2%sHashMap");
267+
addFunctionValueMappers("LINKED_REF_MAP", valueType.isObject() ? "Reference2ObjectLinkedHashMap" : "Reference2%sLinkedHashMap");
252268
addBiClassMapper("HASH_MAP", "OpenHashMap", "2");
253269
addBiClassMapper("ARRAY_MAP", "ArrayMap", "2");
254270

src/builder/resources/speiger/assets/collections/templates/maps/impl/hash/LinkedOpenHashMap.template

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ public class LINKED_HASH_MAP KEY_VALUE_GENERIC_TYPE extends HASH_MAP KEY_VALUE_G
288288
}
289289
else {
290290
int pos = HashUtil.mix(KEY_TO_HASH(key)) & mask;
291-
while(KEY_EQUALS_NULL(key)) {
291+
while(KEY_EQUALS_NOT_NULL(keys[pos])) {
292292
if(KEY_EQUALS(keys[pos], key)) return values[pos];
293293
pos = ++pos & mask;
294294
}
@@ -312,7 +312,7 @@ public class LINKED_HASH_MAP KEY_VALUE_GENERIC_TYPE extends HASH_MAP KEY_VALUE_G
312312
}
313313
else {
314314
int pos = HashUtil.mix(KEY_TO_HASH(key)) & mask;
315-
while(KEY_EQUALS_NULL(key)) {
315+
while(KEY_EQUALS_NOT_NULL(keys[pos])) {
316316
if(KEY_EQUALS(keys[pos], key)) return values[pos];
317317
pos = ++pos & mask;
318318
}

0 commit comments

Comments
 (0)