Skip to content

Instantly share code, notes, and snippets.

@metaleap
Created January 13, 2020 19:28
Show Gist options
  • Save metaleap/244268f50ab5b466809460ada68becaf to your computer and use it in GitHub Desktop.
Save metaleap/244268f50ab5b466809460ada68becaf to your computer and use it in GitHub Desktop.
pub fn FromJson(mem: *std.mem.Allocator, src: []u8) !atem.Prog {
var jsonparser = std.json.Parser.init(mem, true);
defer jsonparser.deinit();
var jsontree = try jsonparser.parse(src);
defer jsontree.deinit();
const rootarr = try as(std.json.Value.Array, std.json.Array, jsontree.root);
// defer rootarr.deinit();
return fromJson(mem, rootarr.toSlice());
}
@metaleap
Copy link
Author

up 1:

frame #1: 0x0000000000237ef0 main`std.mem.Allocator.free(self=0x00007fffffffde48, memory=<unavailable>) at mem.zig:237:44
   234 	        const bytes_len = bytes.len + @boolToInt(Slice.sentinel != null);
   235 	        if (bytes_len == 0) return;
   236 	        const non_const_ptr = @intToPtr([*]u8, @ptrToInt(bytes.ptr));
-> 237 	        const shrink_result = self.shrinkFn(self, non_const_ptr[0..bytes_len], Slice.alignment, 0, 1);
   238 	        assert(shrink_result.len == 0);
   239 	    }
   240 	};

p *self:

(std.mem.Allocator) $0 = {
  reallocFn = 0x0000000000000008
  shrinkFn = 0x0000000000000003
}

@metaleap
Copy link
Author

(std.array_list.AlignedArrayList(std.json.Value,null)) $1 = {
  items = {
    ptr = 0x00007ffff7fe2828
    len = 20
  }
  len = 12
  allocator = 0x00007fffffffde48
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment