goprotobuf: Various changes for working with weekly.2011-12-06.
- strconv API changes
- rune tweak
R=r
CC=golang-dev
http://codereview.appspot.com/5463043
diff --git a/proto/text_parser.go b/proto/text_parser.go
index 0e76e13..e6cb44d 100644
--- a/proto/text_parser.go
+++ b/proto/text_parser.go
@@ -383,12 +383,6 @@
return nil
}
-const (
- minInt32 = -1 << 31
- maxInt32 = 1<<31 - 1
- maxUint32 = 1<<32 - 1
-)
-
func (p *textParser) readAny(v reflect.Value, props *Properties) *ParseError {
tok := p.next()
if tok.err != nil {
@@ -436,12 +430,12 @@
return nil
}
case reflect.Float32, reflect.Float64:
- if f, err := strconv.AtofN(tok.value, fv.Type().Bits()); err == nil {
+ if f, err := strconv.ParseFloat(tok.value, fv.Type().Bits()); err == nil {
fv.SetFloat(f)
return nil
}
case reflect.Int32:
- if x, err := strconv.Atoi64(tok.value); err == nil && minInt32 <= x && x <= maxInt32 {
+ if x, err := strconv.ParseInt(tok.value, 10, 32); err == nil {
fv.SetInt(x)
return nil
}
@@ -459,7 +453,7 @@
fv.SetInt(int64(x))
return nil
case reflect.Int64:
- if x, err := strconv.Atoi64(tok.value); err == nil {
+ if x, err := strconv.ParseInt(tok.value, 10, 64); err == nil {
fv.SetInt(x)
return nil
}
@@ -485,12 +479,12 @@
}
return p.readStruct(fv, terminator)
case reflect.Uint32:
- if x, err := strconv.Atoui64(tok.value); err == nil && x <= maxUint32 {
+ if x, err := strconv.ParseUint(tok.value, 10, 32); err == nil {
fv.SetUint(uint64(x))
return nil
}
case reflect.Uint64:
- if x, err := strconv.Atoui64(tok.value); err == nil {
+ if x, err := strconv.ParseUint(tok.value, 10, 64); err == nil {
fv.SetUint(x)
return nil
}