aboutsummaryrefslogtreecommitdiff
path: root/src/lib/json
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/json')
-rw-r--r--src/lib/json/generic.go10
-rw-r--r--src/lib/json/parse.go4
-rw-r--r--src/lib/json/struct_test.go4
3 files changed, 9 insertions, 9 deletions
diff --git a/src/lib/json/generic.go b/src/lib/json/generic.go
index abdcd9546c..4f4268459b 100644
--- a/src/lib/json/generic.go
+++ b/src/lib/json/generic.go
@@ -99,7 +99,7 @@ func (j *Bool) String() string {
return "false"
}
-type Map struct { m *map[string]Json; Null }
+type Map struct { m map[string]Json; Null }
func (j *Map) Kind() int { return MapKind }
func (j *Map) Get(s string) Json {
if j.m == nil {
@@ -212,7 +212,7 @@ type JsonBuilder struct {
i int;
// or to m[k] (can't set ptr = &m[k])
- m *map[string] Json;
+ m map[string] Json;
k string;
}
@@ -273,7 +273,7 @@ func (b *JsonBuilder) Map() {
}
func (b *JsonBuilder) Elem(i int) Builder {
- bb := new(JsonBuilder);
+ bb := new(*JsonBuilder);
bb.a = b.Get().(*Array).a;
bb.i = i;
for i >= bb.a.Len() {
@@ -283,7 +283,7 @@ func (b *JsonBuilder) Elem(i int) Builder {
}
func (b *JsonBuilder) Key(k string) Builder {
- bb := new(JsonBuilder);
+ bb := new(*JsonBuilder);
bb.m = b.Get().(*Map).m;
bb.k = k;
bb.m[k] = null;
@@ -293,7 +293,7 @@ func (b *JsonBuilder) Key(k string) Builder {
export func StringToJson(s string) (json Json, ok bool, errtok string) {
var errindx int;
var j Json;
- b := new(JsonBuilder);
+ b := new(*JsonBuilder);
b.ptr = &j;
ok, errindx, errtok = Parse(s, b);
if !ok {
diff --git a/src/lib/json/parse.go b/src/lib/json/parse.go
index 1373a124a6..f38bb59a6f 100644
--- a/src/lib/json/parse.go
+++ b/src/lib/json/parse.go
@@ -120,7 +120,7 @@ export func Unquote(s string) (t string, ok bool) {
export func Quote(s string) string {
chr := new([]byte, utf8.UTFMax);
chr0 := chr[0:1];
- b := new(io.ByteBuffer);
+ b := new(*io.ByteBuffer);
chr[0] = '"';
b.Write(chr0);
for i := 0; i < len(s); i++ {
@@ -387,7 +387,7 @@ Switch:
}
export func Parse(s string, build Builder) (ok bool, errindx int, errtok string) {
- lex := new(Lexer);
+ lex := new(*Lexer);
lex.s = s;
lex.Next();
if ParseValue(lex, build) {
diff --git a/src/lib/json/struct_test.go b/src/lib/json/struct_test.go
index 85dbd8881d..9f8615a360 100644
--- a/src/lib/json/struct_test.go
+++ b/src/lib/json/struct_test.go
@@ -26,7 +26,7 @@ type MyStruct struct {
fl float;
fl32 float32;
fl64 float64;
- a []string;
+ a *[]string; // TODO(rsc): Should be able to use []string.
my *MyStruct;
};
@@ -69,7 +69,7 @@ export func TestUnmarshal(t *testing.T) {
Check(t, m.fl==11.5, "fl", m.fl);
Check(t, m.fl32==12.25, "fl32", m.fl32);
Check(t, m.fl64==13.75, "fl64", m.fl64);
-// Check(t, m.a!=nil, "a", m.a); // TODO(rsc): uncomment once []string as interface works
+ Check(t, m.a!=nil, "a", m.a);
if m.a != nil {
Check(t, m.a[0]=="x", "a[0]", m.a[0]);
Check(t, m.a[1]=="y", "a[1]", m.a[1]);