Commit c0a0fd6c authored by Russ Cox's avatar Russ Cox

gob: split uses of gobError, remove unnecessary embedding

Will make gofix for error run more smoothly.
The overloading of gobError appears to be unintentional.

R=r
CC=golang-dev
https://golang.org/cl/5308060
parent c1178aae
......@@ -41,7 +41,7 @@ var encodeT = []EncodeT{
// plain test.Error call.
func testError(t *testing.T) {
if e := recover(); e != nil {
t.Error(e.(gobError).Error) // Will re-panic if not one of our errors, such as a runtime error.
t.Error(e.(gobError).err) // Will re-panic if not one of our errors, such as a runtime error.
}
return
}
......
......@@ -64,7 +64,7 @@ func (dec *Decoder) recvType(id typeId) {
dec.wireType[id] = wire
}
var errBadCount = gobError{os.NewError("invalid message length")}
var errBadCount = os.NewError("invalid message length")
// recvMessage reads the next count-delimited item from the input. It is the converse
// of Encoder.writeMessage. It returns false on EOF or other error reading the message.
......
......@@ -18,7 +18,7 @@ import (
// A gobError wraps an os.Error and is used to distinguish errors (panics) generated in this package.
type gobError struct {
os.Error
err os.Error
}
// errorf is like error but takes Printf-style arguments to construct an os.Error.
......@@ -29,14 +29,14 @@ func errorf(format string, args ...interface{}) {
// error wraps the argument error and uses it as the argument to panic.
func error(err os.Error) {
panic(gobError{Error: err})
panic(gobError{err})
}
// catchError is meant to be used as a deferred function to turn a panic(gobError) into a
// plain os.Error. It overwrites the error return of the function that deferred its call.
func catchError(err *os.Error) {
if e := recover(); e != nil {
*err = e.(gobError).Error // Will re-panic if not one of our errors, such as a runtime error.
*err = e.(gobError).err // Will re-panic if not one of our errors, such as a runtime error.
}
return
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment