Skip to content

Commit

Permalink
add level argument to sequence constructor
Browse files Browse the repository at this point in the history
  • Loading branch information
StepLg committed Apr 29, 2010
1 parent 7526e72 commit 005420f
Showing 1 changed file with 19 additions and 15 deletions.
34 changes: 19 additions & 15 deletions src/erx/erx.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,33 +40,37 @@ type error_realization struct {
funcInfo *runtime.Func
}

func NewError(msg string) Error {
err := error_realization{msg, "", 0, list.New(), make(map[string] interface{}), nil}
pc, file, line, ok := runtime.Caller(1)
func newErrorInitializer(level int) *error_realization {
err := error_realization{"", "", 0, list.New(), make(map[string] interface{}), nil}
pc, file, line, ok := runtime.Caller(level)
if ok {
err.file, err.line = file, line
} else {
err.file, err.line = "???", 666
}

err.funcInfo = runtime.FuncForPC(pc)
return &err
}

return Error(&err)
func NewError(msg string) Error {
err := newErrorInitializer(2)
err.message = msg
return Error(err)
}

func NewSequent(msg string, error interface{}) Error {
err := error_realization{msg, "", 0, list.New(), make(map[string] interface{}), nil}
pc, file, line, ok := runtime.Caller(1)
if ok {
err.file, err.line = file, line
} else {
err.file, err.line = "???", 666
}

err.funcInfo = runtime.FuncForPC(pc)

err := newErrorInitializer(2)
err.message = msg
err.AddE(error)
return Error(err)
}

func NewSequentLevel(msg string, error interface{}, level int) Error {
err := newErrorInitializer(level+2)
err.message = msg
err.AddE(error)
return Error(&err)
return Error(err)
}

func (e *error_realization) Message() string {
Expand Down

0 comments on commit 005420f

Please sign in to comment.