summaryrefslogtreecommitdiff
path: root/config.go
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2015-10-09 13:00:26 +0200
committerCarlos Martín Nieto <[email protected]>2015-10-09 13:00:26 +0200
commit22da351b1e470074df1ba3f4c872d0b64c6b2046 (patch)
tree0e50929c444f2e378ff946afc75f672faf5a3d95 /config.go
parent43b39805bd50d7767dc0b489f7532ef473fe419c (diff)
parent81e0b16d9fbbfa916b34d0fa38967a14f8796f49 (diff)
Merge pull request #258 from TheDahv/feat-config-snapshot
Fix bug in Config LookupString
Diffstat (limited to 'config.go')
-rw-r--r--config.go8
1 files changed, 5 insertions, 3 deletions
diff --git a/config.go b/config.go
index 9d25e35..c4c4028 100644
--- a/config.go
+++ b/config.go
@@ -115,18 +115,20 @@ func (c *Config) LookupInt64(name string) (int64, error) {
}
func (c *Config) LookupString(name string) (string, error) {
- var ptr *C.char
cname := C.CString(name)
defer C.free(unsafe.Pointer(cname))
+ valBuf := C.git_buf{}
+
runtime.LockOSThread()
defer runtime.UnlockOSThread()
- if ret := C.git_config_get_string(&ptr, c.ptr, cname); ret < 0 {
+ if ret := C.git_config_get_string_buf(&valBuf, c.ptr, cname); ret < 0 {
return "", MakeGitError(ret)
}
+ defer C.git_buf_free(&valBuf)
- return C.GoString(ptr), nil
+ return C.GoString(valBuf.ptr), nil
}
func (c *Config) LookupBool(name string) (bool, error) {