Bad returns noticed by "Devon H. O'Dell" <devon.odell@gmail.com>.
Resolves Issue 360.
R=rsc, dho, agl, agl1
CC=ukai
https://golang.org/cl/163055
for {
frameByte, err := ws.buf.ReadByte();
if err != nil {
- return
+ return n, err
}
if (frameByte & 0x80) == 0x80 {
length := 0;
for {
c, err := ws.buf.ReadByte();
if err != nil {
- return
+ return n, err
}
if (c & 0x80) == 0x80 {
length = length*128 + int(c&0x7f)
for length > 0 {
_, err := ws.buf.ReadByte();
if err != nil {
- return
+ return n, err
}
length--;
}
for {
c, err := ws.buf.ReadByte();
if err != nil {
- return
+ return n, err
}
if c == '\xff' {
- return
+ return n, err
}
if frameByte == 0 {
if n+1 <= cap(msg) {
n++;
}
if n >= cap(msg) {
- err = os.E2BIG;
- return;
+ return n, os.E2BIG
}
}
}
}
- return;
+
+ panic("unreachable");
}
func (ws *Conn) Write(msg []byte) (n int, err os.Error) {