Skip to content

Commit

Permalink
fix: native len
Browse files Browse the repository at this point in the history
  • Loading branch information
liuq19 committed Apr 28, 2024
1 parent 007e8f4 commit f7e73e1
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 16 deletions.
17 changes: 16 additions & 1 deletion dev/ast/node_test.go
Expand Up @@ -24,10 +24,25 @@ func getSample(width int, depth int) string {
return string(js)
}


func TestNodeParse(t *testing.T) {
n1, err := NewParser(`[1,"1",true]`).Parse()
n1, err := NewParser(`[1,"1",true,null]`).Parse()
require.NoError(t, err)
require.Equal(t, len(n1.Kids), 4)

n1, err = NewParser(`[]`).Parse()
require.NoError(t, err)
require.Equal(t, len(n1.Kids), 0)

n1, err = NewParser(`{}`).Parse()
require.NoError(t, err)
require.Equal(t, len(n1.Kids), 0)

n1, err = NewParser(`{"key": null, "k2": {}}`).Parse()
require.NoError(t, err)
spew.Dump(n1.Kids, len(n1.Kids))
require.Equal(t, len(n1.Kids), 4)

src := getSample(100, 0)
n, err := NewParser(src).Parse()
require.NoError(t, err)
Expand Down
2 changes: 2 additions & 0 deletions go.work.sum
Expand Up @@ -111,6 +111,7 @@ github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3K
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg=
Expand Down Expand Up @@ -405,6 +406,7 @@ golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2F
golang.org/x/exp/typeparams v0.0.0-20221002003631-540bb7301a08/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20221208152030-732eee02a75a/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20230213192124-5e25df0256eb/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
Expand Down
8 changes: 4 additions & 4 deletions internal/native/avx/native_text_amd64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions internal/native/avx2/native_text_amd64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions internal/native/sse/native_text_amd64.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 4 additions & 3 deletions native/scanning.c
Expand Up @@ -2106,7 +2106,7 @@ static always_inline long load_lazy(const GoString *src, long *p, Node* node) {
}
if (src->buf[i] == 'r' && src->buf[i + 1] == 'u' && src->buf[i + 2] == 'e') {
visit_bool(kind, true);
*p = i + 4;
*p = i + 3;
} else {
return -ERR_INVAL;
}
Expand All @@ -2118,7 +2118,7 @@ static always_inline long load_lazy(const GoString *src, long *p, Node* node) {
}
if (src->buf[i] == 'a' && src->buf[i + 1] == 'l' && src->buf[i + 2] == 's' && src->buf[i + 3] == 'e') {
visit_bool(kind, false);
*p = i + 5;
*p = i + 4;
} else {
return -ERR_INVAL;
}
Expand All @@ -2130,7 +2130,7 @@ static always_inline long load_lazy(const GoString *src, long *p, Node* node) {
}
if (src->buf[i] == 'u' && src->buf[i + 1] == 'l' && src->buf[i + 2] == 'l') {
visit_null(kind);
*p = i + 4;
*p = i + 3;
} else {
return -ERR_INVAL;
}
Expand Down Expand Up @@ -2205,6 +2205,7 @@ static always_inline long load_lazy(const GoString *src, long *p, Node* node) {
case '}': case ']': {
is_end = true;
node->tape.len = kcnt;
xprintf("len is %d", kcnt);
break;
}
default: {
Expand Down

0 comments on commit f7e73e1

Please sign in to comment.