diff --git a/c/cjson/_demo/mkjson/mkjson.go b/c/cjson/_demo/mkjson/mkjson.go index e91db71f..c98c9311 100644 --- a/c/cjson/_demo/mkjson/mkjson.go +++ b/c/cjson/_demo/mkjson/mkjson.go @@ -22,6 +22,9 @@ func main() { mod.SetItem(c.Str("items"), syms) - c.Printf(c.Str("%s\n"), mod.CStr()) + cstr := mod.CStr() + c.Printf(c.Str("%s\n"), cstr) + cjson.FreeCStr(cstr) + mod.Delete() } diff --git a/c/cjson/cjson.go b/c/cjson/cjson.go index 56936469..21c0d1b0 100644 --- a/c/cjson/cjson.go +++ b/c/cjson/cjson.go @@ -133,3 +133,9 @@ func (o *JSON) PrintUnformatted() *c.Char { return nil } // // llgo:link (*JSON).PrintBuffered C.cJSON_PrintBuffered func (o *JSON) PrintBuffered(prebuffer c.Int, fmt c.Int) *c.Char { return nil } + +//go:linkname Free C.cJSON_free +func Free(ptr unsafe.Pointer) + +//go:linkname FreeCStr C.cJSON_free +func FreeCStr(*c.Char)