forked from cerc-io/plugeth
rlp: don't panic for nil *big.Int
All other pointer types can handle nil just fine.
This commit is contained in:
parent
86661de077
commit
cb009a5c4d
@ -386,7 +386,12 @@ func writeUint(val reflect.Value, w *encbuf) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func writeBigIntPtr(val reflect.Value, w *encbuf) error {
|
func writeBigIntPtr(val reflect.Value, w *encbuf) error {
|
||||||
return writeBigInt(val.Interface().(*big.Int), w)
|
ptr := val.Interface().(*big.Int)
|
||||||
|
if ptr == nil {
|
||||||
|
w.str = append(w.str, 0x80)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return writeBigInt(ptr, w)
|
||||||
}
|
}
|
||||||
|
|
||||||
func writeBigIntNoPtr(val reflect.Value, w *encbuf) error {
|
func writeBigIntNoPtr(val reflect.Value, w *encbuf) error {
|
||||||
|
@ -196,6 +196,7 @@ var encTests = []encTest{
|
|||||||
{val: (*uint)(nil), output: "80"},
|
{val: (*uint)(nil), output: "80"},
|
||||||
{val: (*string)(nil), output: "80"},
|
{val: (*string)(nil), output: "80"},
|
||||||
{val: (*[]byte)(nil), output: "80"},
|
{val: (*[]byte)(nil), output: "80"},
|
||||||
|
{val: (*big.Int)(nil), output: "80"},
|
||||||
{val: (*[]string)(nil), output: "C0"},
|
{val: (*[]string)(nil), output: "C0"},
|
||||||
{val: (*[]interface{})(nil), output: "C0"},
|
{val: (*[]interface{})(nil), output: "C0"},
|
||||||
{val: (*[]struct{ uint })(nil), output: "C0"},
|
{val: (*[]struct{ uint })(nil), output: "C0"},
|
||||||
|
Loading…
Reference in New Issue
Block a user