Skip to content

Commit b1dec80

Browse files
committed
Support GetOrAdd for nil constants, doing nothing, but returning another nil constant.
1 parent 7fdfe29 commit b1dec80

1 file changed

Lines changed: 18 additions & 18 deletions

File tree

src/IKVM.ByteCode/Encoding/ConstantBuilder.cs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,92 +1298,92 @@ public void Serialize(BlobBuilder builder)
12981298

12991299
ConstantHandle IConstantPool.Get(in Constant value)
13001300
{
1301-
return GetOrAdd(value);
1301+
return value.IsNotNil ? GetOrAdd(value) : default;
13021302
}
13031303

13041304
Utf8ConstantHandle IConstantPool.Get(in Utf8Constant value)
13051305
{
1306-
return GetOrAddUtf8(value.Value);
1306+
return value.IsNotNil ? GetOrAddUtf8(value.Value) : default;
13071307
}
13081308

13091309
IntegerConstantHandle IConstantPool.Get(in IntegerConstant value)
13101310
{
1311-
return GetOrAddInteger(value.Value);
1311+
return value.IsNotNil ? GetOrAddInteger(value.Value) : default;
13121312
}
13131313

13141314
FloatConstantHandle IConstantPool.Get(in FloatConstant value)
13151315
{
1316-
return GetOrAddFloat(value.Value);
1316+
return value.IsNotNil ? GetOrAddFloat(value.Value) : default;
13171317
}
13181318

13191319
LongConstantHandle IConstantPool.Get(in LongConstant value)
13201320
{
1321-
return GetOrAddLong(value.Value);
1321+
return value.IsNotNil ? GetOrAddLong(value.Value) : default;
13221322
}
13231323

13241324
DoubleConstantHandle IConstantPool.Get(in DoubleConstant value)
13251325
{
1326-
return GetOrAddDouble(value.Value);
1326+
return value.IsNotNil ? GetOrAddDouble(value.Value) : default;
13271327
}
13281328

13291329
ClassConstantHandle IConstantPool.Get(in ClassConstant value)
13301330
{
1331-
return GetOrAddClass(value.Name);
1331+
return value.IsNotNil ? GetOrAddClass(value.Name) : default;
13321332
}
13331333

13341334
StringConstantHandle IConstantPool.Get(in StringConstant value)
13351335
{
1336-
return GetOrAddString(value.Value);
1336+
return value.IsNotNil ? GetOrAddString(value.Value) : default;
13371337
}
13381338

13391339
FieldrefConstantHandle IConstantPool.Get(in FieldrefConstant value)
13401340
{
1341-
return GetOrAddFieldref(value.ClassName, value.Name, value.Descriptor);
1341+
return value.IsNotNil ? GetOrAddFieldref(value.ClassName, value.Name, value.Descriptor) : default;
13421342
}
13431343

13441344
MethodrefConstantHandle IConstantPool.Get(in MethodrefConstant value)
13451345
{
1346-
return GetOrAddMethodref(value.ClassName, value.Name, value.Descriptor);
1346+
return value.IsNotNil ? GetOrAddMethodref(value.ClassName, value.Name, value.Descriptor) : default;
13471347
}
13481348

13491349
InterfaceMethodrefConstantHandle IConstantPool.Get(in InterfaceMethodrefConstant value)
13501350
{
1351-
return GetOrAddInterfaceMethodref(value.ClassName, value.Name, value.Descriptor);
1351+
return value.IsNotNil ? GetOrAddInterfaceMethodref(value.ClassName, value.Name, value.Descriptor) : default;
13521352
}
13531353

13541354
NameAndTypeConstantHandle IConstantPool.Get(in NameAndTypeConstant value)
13551355
{
1356-
return GetOrAddNameAndType(value.Name, value.Descriptor);
1356+
return value.IsNotNil ? GetOrAddNameAndType(value.Name, value.Descriptor) : default;
13571357
}
13581358

13591359
MethodHandleConstantHandle IConstantPool.Get(in MethodHandleConstant value)
13601360
{
1361-
return GetOrAddMethodHandle(value.Kind, value.ReferenceKind, value.ClassName, value.Name, value.Descriptor);
1361+
return value.IsNotNil ? GetOrAddMethodHandle(value.Kind, value.ReferenceKind, value.ClassName, value.Name, value.Descriptor) : default;
13621362
}
13631363

13641364
MethodTypeConstantHandle IConstantPool.Get(in MethodTypeConstant value)
13651365
{
1366-
return GetOrAddMethodType(value.Descriptor);
1366+
return value.IsNotNil ? GetOrAddMethodType(value.Descriptor) : default;
13671367
}
13681368

13691369
DynamicConstantHandle IConstantPool.Get(in DynamicConstant value)
13701370
{
1371-
return GetOrAddDynamic(value.BootstrapMethodAttributeIndex, GetOrAddNameAndType(value.Name, value.Descriptor));
1371+
return value.IsNotNil ? GetOrAddDynamic(value.BootstrapMethodAttributeIndex, GetOrAddNameAndType(value.Name, value.Descriptor)) : default;
13721372
}
13731373

13741374
InvokeDynamicConstantHandle IConstantPool.Get(in InvokeDynamicConstant value)
13751375
{
1376-
return GetOrAddInvokeDynamic(value.BootstrapMethodAttributeIndex, GetOrAddNameAndType(value.Name, value.Descriptor));
1376+
return value.IsNotNil ? GetOrAddInvokeDynamic(value.BootstrapMethodAttributeIndex, GetOrAddNameAndType(value.Name, value.Descriptor)) : default;
13771377
}
13781378

13791379
ModuleConstantHandle IConstantPool.Get(in ModuleConstant value)
13801380
{
1381-
return GetOrAddModule(value.Name);
1381+
return value.IsNotNil ? GetOrAddModule(value.Name) : default;
13821382
}
13831383

13841384
PackageConstantHandle IConstantPool.Get(in PackageConstant value)
13851385
{
1386-
return GetOrAddPackage(value.Name);
1386+
return value.IsNotNil ? GetOrAddPackage(value.Name) : default;
13871387
}
13881388

13891389
#endregion

0 commit comments

Comments
 (0)