callctx 수정

This commit is contained in:
2023-07-10 10:53:49 +09:00
parent e912c88993
commit 98efbc2875
2 changed files with 42 additions and 5 deletions

View File

@ -6,6 +6,7 @@ import (
"encoding/gob"
"errors"
"fmt"
"path"
"reflect"
"runtime"
"strings"
@ -148,15 +149,16 @@ func (c callContext) call(args ...any) error {
}
pc := make([]uintptr, 1)
n := runtime.Callers(2, pc[:])
n := runtime.Callers(3, pc[:])
if n < 1 {
return errNoReceiver
}
frame, _ := runtime.CallersFrames(pc).Next()
prf := strings.Split(frame.Function, ".")
rname := prf[1]
funcname := prf[2]
prf := path.Base(frame.Function)
lastdot := strings.LastIndex(prf, ".")
rname := prf[:lastdot]
funcname := prf[lastdot+1:]
serialized, err := encode(c.t, rname, funcname, args...)
if err != nil {