engine.go: Simplify write, header calls for context pointers

This commit is contained in:
Alex Palaistras 2016-02-27 15:16:48 +00:00
parent 886afb7ac9
commit 2a1e45785b
1 changed files with 11 additions and 22 deletions

View File

@ -92,14 +92,6 @@ func (e *Engine) Destroy() {
engine = nil
}
func contextFromPtr(ctxptr *C.struct__engine_context) *Context {
if engine == nil || engine.contexts[ctxptr] == nil {
return nil
}
return engine.contexts[ctxptr]
}
func write(w io.Writer, buffer unsafe.Pointer, length C.uint) C.int {
// Do not return error if writer is unavailable.
if w == nil {
@ -115,29 +107,26 @@ func write(w io.Writer, buffer unsafe.Pointer, length C.uint) C.int {
}
//export engineWriteOut
func engineWriteOut(ctxptr *C.struct__engine_context, buffer unsafe.Pointer, length C.uint) C.int {
ctx := contextFromPtr(ctxptr)
if ctx == nil {
func engineWriteOut(ctx *C.struct__engine_context, buffer unsafe.Pointer, length C.uint) C.int {
if engine == nil || engine.contexts[ctx] == nil {
return -1
}
return write(ctx.Output, buffer, length)
return write(engine.contexts[ctx].Output, buffer, length)
}
//export engineWriteLog
func engineWriteLog(ctxptr *C.struct__engine_context, buffer unsafe.Pointer, length C.uint) C.int {
ctx := contextFromPtr(ctxptr)
if ctx == nil {
func engineWriteLog(ctx *C.struct__engine_context, buffer unsafe.Pointer, length C.uint) C.int {
if engine == nil || engine.contexts[ctx] == nil {
return -1
}
return write(ctx.Log, buffer, length)
return write(engine.contexts[ctx].Log, buffer, length)
}
//export engineSetHeader
func engineSetHeader(ctxptr *C.struct__engine_context, operation C.uint, buffer unsafe.Pointer, length C.uint) {
ctx := contextFromPtr(ctxptr)
if ctx == nil {
func engineSetHeader(ctx *C.struct__engine_context, operation C.uint, buffer unsafe.Pointer, length C.uint) {
if engine == nil || engine.contexts[ctx] == nil {
return
}
@ -151,15 +140,15 @@ func engineSetHeader(ctxptr *C.struct__engine_context, operation C.uint, buffer
switch operation {
case 0: // Replace header.
if len(split) == 2 && split[1] != "" {
ctx.Header.Set(split[0], split[1])
engine.contexts[ctx].Header.Set(split[0], split[1])
}
case 1: // Append header.
if len(split) == 2 && split[1] != "" {
ctx.Header.Add(split[0], split[1])
engine.contexts[ctx].Header.Add(split[0], split[1])
}
case 2: // Delete header.
if split[0] != "" {
ctx.Header.Del(split[0])
engine.contexts[ctx].Header.Del(split[0])
}
}
}