Disable struct field reordering (for the time being)

This commit is contained in:
gingerBill
2017-12-12 18:21:40 +00:00
parent fd1f6ec75c
commit f7e9649be4
15 changed files with 103 additions and 292 deletions
+4 -8
View File
@@ -234,7 +234,6 @@ write_type :: proc(buf: ^String_Buffer, ti: ^Type_Info) {
case Type_Info_Array:
write_string(buf, "[");
fi := Fmt_Info{buf = buf};
write_i64(buf, i64(info.count), 10);
write_string(buf, "]");
write_type(buf, info.elem);
@@ -313,8 +312,6 @@ _parse_int :: proc(s: string, offset: int) -> (result: int, offset: int, ok: boo
}
result := 0;
ok := true;
i := 0;
for i < len(s[offset..]) {
c := rune(s[offset+i]);
@@ -855,11 +852,10 @@ fmt_value :: proc(fi: ^Fmt_Info, v: any, verb: rune) {
write_byte(fi.buf, '{');
defer write_byte(fi.buf, '}');
hash := fi.hash; defer fi.hash = hash;
indent := fi.indent; defer fi.indent -= 1;
fi.indent += 1; defer fi.indent -= 1;
hash := fi.hash; defer fi.hash = hash;
fi.hash = false;
fi.indent += 1;
if hash do write_byte(fi.buf, '\n');
@@ -1016,7 +1012,7 @@ sbprintln :: proc(buf: ^String_Buffer, args: ...any) -> string {
fi: Fmt_Info;
fi.buf = buf;
for arg, i in args {
for _, i in args {
if i > 0 do write_byte(buf, ' ');
fmt_value(&fi, args[i], 'v');
+1 -1
View File
@@ -49,7 +49,7 @@ write_entire_file :: proc(name: string, data: []byte, truncate := true) -> (succ
}
defer close(fd);
bytes_written, write_err := write(fd, data);
_, write_err := write(fd, data);
return write_err == 0;
}
+1
View File
@@ -49,6 +49,7 @@ are_types_identical :: proc(a, b: ^Type_Info) -> bool {
case Type_Info_Pointer:
y, ok := b.variant.(Type_Info_Pointer);
if !ok do return false;
return are_types_identical(x.elem, y.elem);
case Type_Info_Procedure:
+10 -14
View File
@@ -30,25 +30,23 @@ encode_surrogate_pair :: proc(r: rune) -> (r1, r2: rune) {
}
encode :: proc(d: []u16, s: []rune) -> int {
n := len(s);
for r in s do if r >= _surr_self do n += 1;
max_n := min(len(d), n);
n = 0;
for r in s {
n, m := 0, len(d);
loop: for r in s {
switch r {
case 0.._surr1, _surr3 .. _surr_self:
if m+1 < n do break loop;
d[n] = u16(r);
n += 1;
case _surr_self .. MAX_RUNE:
if m+2 < n do break loop;
r1, r2 := encode_surrogate_pair(r);
d[n] = u16(r1);
d[n+1] = u16(r2);
n += 2;
case:
if m+1 < n do break loop;
d[n] = u16(REPLACEMENT_CHAR);
n += 1;
}
@@ -58,25 +56,23 @@ encode :: proc(d: []u16, s: []rune) -> int {
encode_string :: proc(d: []u16, s: string) -> int {
n := utf8.rune_count_from_string(s);
for r in s do if r >= _surr_self do n += 1;
max_n := min(len(d), n);
n = 0;
for r in s {
n, m := 0, len(d);
loop: for r in s {
switch r {
case 0.._surr1, _surr3 .. _surr_self:
if m+1 < n do break loop;
d[n] = u16(r);
n += 1;
case _surr_self .. MAX_RUNE:
if m+2 < n do break loop;
r1, r2 := encode_surrogate_pair(r);
d[n] = u16(r1);
d[n+1] = u16(r2);
n += 2;
case:
if m+1 < n do break loop;
d[n] = u16(REPLACEMENT_CHAR);
n += 1;
}