fix: decode null / empty values

This commit is contained in:
REAndroid 2023-05-01 19:55:22 +02:00
parent d5c3f7563e
commit fea0583f61

View File

@ -64,7 +64,7 @@ import java.util.regex.Pattern;
return null; return null;
} }
if("@empty".equals(txt)){ if("@empty".equals(txt)){
return new EncodeResult(ValueType.NULL, 0); return new EncodeResult(ValueType.NULL, 1);
} }
if("@null".equals(txt)){ if("@null".equals(txt)){
return new EncodeResult(ValueType.REFERENCE, 0); return new EncodeResult(ValueType.REFERENCE, 0);
@ -355,7 +355,7 @@ import java.util.regex.Pattern;
} }
public static String decodeIntEntry(EntryStore store, Entry parentEntry, ValueType valueType, int data){ public static String decodeIntEntry(EntryStore store, Entry parentEntry, ValueType valueType, int data){
if(valueType == ValueType.NULL){ if(valueType == ValueType.NULL){
return "@empty"; return decodeNull(data);
} }
if(valueType==ValueType.STRING){ if(valueType==ValueType.STRING){
return decodeIntEntryString(parentEntry, data); return decodeIntEntryString(parentEntry, data);
@ -474,6 +474,8 @@ import java.util.regex.Pattern;
return decodeHex(data); return decodeHex(data);
case INT_DEC: case INT_DEC:
return decodeInt(data); return decodeInt(data);
case NULL:
return decodeNull(data);
} }
return null; return null;
} }
@ -713,6 +715,12 @@ import java.util.regex.Pattern;
private static String decodeInt(int rawVal){ private static String decodeInt(int rawVal){
return String.valueOf(rawVal); return String.valueOf(rawVal);
} }
private static String decodeNull(int data){
if(data == 1){
return "@empty";
}
return "@null";
}
private static String decodeBoolean(int data){ private static String decodeBoolean(int data){
if(data == 0xFFFFFFFF){ if(data == 0xFFFFFFFF){