fix(codegen): Fixes codegenning timers when they are null. (#723)
When a timer is null, the code generator will use `TimeSpan.MinValue` as the delay.
This commit is contained in:
parent
dd62e17693
commit
671cc769a6
2 changed files with 4 additions and 3 deletions
|
|
@ -63,7 +63,8 @@ namespace SerializableMigration
|
|||
var driftTimer = ruleArguments![0].Contains("@TimerDrift");
|
||||
|
||||
var readTimer = driftTimer ? "reader.ReadDeltaTime()" : "reader.ReadDateTime()";
|
||||
source.AppendLine($"{indent}var {propertyName}Delay = {readTimer} - Core.Now;");
|
||||
source.AppendLine($"{indent}var {propertyName}Next = {readTimer};");
|
||||
source.AppendLine($"{indent}var {propertyName}Delay = {propertyName}Next == System.DateTime.MinValue ? System.TimeSpan.MinValue : {propertyName}Next - Core.Now;");
|
||||
}
|
||||
|
||||
public void GenerateSerializationMethod(StringBuilder source, string indent, SerializableProperty property)
|
||||
|
|
@ -80,7 +81,7 @@ namespace SerializableMigration
|
|||
var driftTimer = ruleArguments![0].Contains("@TimerDrift");
|
||||
|
||||
var writerMethod = driftTimer ? "WriteDeltaTime" : "Write";
|
||||
source.AppendLine($"{indent}writer.{writerMethod}({propertyName}.Next);");
|
||||
source.AppendLine($"{indent}writer.{writerMethod}({propertyName}?.Next ?? System.DateTime.MinValue);");
|
||||
}
|
||||
|
||||
public void PostDeserializeMethod(
|
||||
|
|
|
|||
|
|
@ -57,6 +57,6 @@ namespace Server
|
|||
InternalRead(source, buffer, bufferIndex, length);
|
||||
|
||||
internal unsafe int InternalRead(FileStream source, void* buffer, int bufferIndex, int length) =>
|
||||
UnsafeNativeMethods.read(source.SafeFileHandle.DangerousGetHandle(), (byte*)buffer + bufferIndex, length);
|
||||
UnsafeNativeMethods.read(source.SafeFileHandle!.DangerousGetHandle(), (byte*)buffer + bufferIndex, length);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue