obfuz/Plugins/dnlib/DotNet/Writer/WriterUtils.cs

38 lines
1.1 KiB
C#

// dnlib: See LICENSE.txt for more info
namespace dnlib.DotNet.Writer {
static class WriterUtils {
public static uint WriteCompressedUInt32(this DataWriter writer, IWriterError helper, uint value) {
if (value > 0x1FFFFFFF) {
helper.Error("UInt32 value is too big and can't be compressed");
value = 0x1FFFFFFF;
}
writer.WriteCompressedUInt32(value);
return value;
}
public static int WriteCompressedInt32(this DataWriter writer, IWriterError helper, int value) {
if (value < -0x10000000) {
helper.Error("Int32 value is too small and can't be compressed.");
value = -0x10000000;
}
else if (value > 0x0FFFFFFF) {
helper.Error("Int32 value is too big and can't be compressed.");
value = 0x0FFFFFFF;
}
writer.WriteCompressedInt32(value);
return value;
}
public static void Write(this DataWriter writer, IWriterError helper, UTF8String s) {
if (UTF8String.IsNull(s)) {
helper.Error("UTF8String is null");
s = UTF8String.Empty;
}
writer.WriteCompressedUInt32(helper, (uint)s.DataLength);
writer.WriteBytes(s.Data);
}
}
}