inih: INIReaderDispose

This commit is contained in:
xushiwei
2024-07-13 18:11:34 +08:00
parent b026bfc71b
commit af54a22d16
6 changed files with 24 additions and 3 deletions

View File

@@ -12,6 +12,8 @@ username=admin
timeout=100
`
reader := inih.NewReader(c.Str(buf), uintptr(len(buf)))
defer reader.Dispose()
println(reader.ParseError())
sec := std.Str("settings")
name := std.Str("timeout")
@@ -19,6 +21,8 @@ timeout=100
println("value:", value)
reader = inih.NewReaderFile(std.Str("config.ini"))
defer reader.Dispose()
if ret := reader.ParseError(); ret != 0 {
println("Error parsing config file:", ret)
return

13
cpp/inih/_wrap/reader.cpp Normal file
View File

@@ -0,0 +1,13 @@
#include <INIReader.h>
extern "C" {
// -----------------------------------------------------------------------------
void INIReaderDispose(INIReader* r) {
r->~INIReader();
}
// -----------------------------------------------------------------------------
} // extern "C"

View File

@@ -23,7 +23,8 @@ import (
)
const (
LLGoPackage = "link: $(pkg-config --libs inih INIReader); -linih -lINIReader"
LLGoFiles = "_wrap/reader.cpp"
LLGoPackage = "link: $(pkg-config --cflags --libs inih INIReader); -linih -lINIReader"
)
//go:linkname Parse C.ini_parse

View File

@@ -36,6 +36,9 @@ func (r *Reader) InitFromBuffer(buffer *c.Char, bufferSize uintptr) {}
// llgo:link (*Reader).InitFromFile C._ZN9INIReaderC1ERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEE
func (r *Reader) InitFromFile(fileName *std.String) {}
// llgo:link (*Reader).Dispose C.INIReaderDispose
func (s *Reader) Dispose() {}
// -----------------------------------------------------------------------------
func NewReader(buffer *c.Char, bufferSize uintptr) (ret Reader) {

View File

@@ -20,7 +20,7 @@ void stdStringInitFromCStrLen(std::string* s, const char* cstr, size_t len) {
new(s) std::string(cstr, len);
}
void stdStringDispose(const std::string* s) {
void stdStringDispose(std::string* s) {
s->~basic_string();
}

View File

@@ -17,7 +17,7 @@
package std
const (
LLGoFiles = "_cppstd/string.cpp"
LLGoFiles = "_wrap/string.cpp"
LLGoPackage = "link: c++"
)