diff options
Diffstat (limited to 'libgo')
-rw-r--r-- | libgo/runtime/go-eface-compare.c | 4 | ||||
-rw-r--r-- | libgo/runtime/go-eface-val-compare.c | 2 | ||||
-rw-r--r-- | libgo/runtime/go-interface-eface-compare.c | 2 | ||||
-rw-r--r-- | libgo/runtime/go-type-eface.c | 3 | ||||
-rw-r--r-- | libgo/runtime/go-type.h | 9 | ||||
-rw-r--r-- | libgo/runtime/iface.goc | 8 | ||||
-rw-r--r-- | libgo/runtime/reflect.goc | 2 |
7 files changed, 0 insertions, 30 deletions
diff --git a/libgo/runtime/go-eface-compare.c b/libgo/runtime/go-eface-compare.c index e738efc..3555a65 100644 --- a/libgo/runtime/go-eface-compare.c +++ b/libgo/runtime/go-eface-compare.c @@ -19,10 +19,6 @@ __go_empty_interface_compare (struct __go_empty_interface left, left_descriptor = left.__type_descriptor; - if (((uintptr_t) left_descriptor & reflectFlags) != 0 - || ((uintptr_t) right.__type_descriptor & reflectFlags) != 0) - runtime_panicstring ("invalid interface value"); - if (left_descriptor == NULL && right.__type_descriptor == NULL) return 0; if (left_descriptor == NULL || right.__type_descriptor == NULL) diff --git a/libgo/runtime/go-eface-val-compare.c b/libgo/runtime/go-eface-val-compare.c index 454ea3e..743f126 100644 --- a/libgo/runtime/go-eface-val-compare.c +++ b/libgo/runtime/go-eface-val-compare.c @@ -20,8 +20,6 @@ __go_empty_interface_value_compare ( const struct __go_type_descriptor *left_descriptor; left_descriptor = left.__type_descriptor; - if (((uintptr_t) left_descriptor & reflectFlags) != 0) - runtime_panicstring ("invalid interface value"); if (left_descriptor == NULL) return 1; if (!__go_type_descriptors_equal (left_descriptor, right_descriptor)) diff --git a/libgo/runtime/go-interface-eface-compare.c b/libgo/runtime/go-interface-eface-compare.c index bb81ff8..a38917f 100644 --- a/libgo/runtime/go-interface-eface-compare.c +++ b/libgo/runtime/go-interface-eface-compare.c @@ -18,8 +18,6 @@ __go_interface_empty_compare (struct __go_interface left, { const struct __go_type_descriptor *left_descriptor; - if (((uintptr_t) right.__type_descriptor & reflectFlags) != 0) - runtime_panicstring ("invalid interface value"); if (left.__methods == NULL && right.__type_descriptor == NULL) return 0; if (left.__methods == NULL || right.__type_descriptor == NULL) diff --git a/libgo/runtime/go-type-eface.c b/libgo/runtime/go-type-eface.c index cb3424b..30614d2 100644 --- a/libgo/runtime/go-type-eface.c +++ b/libgo/runtime/go-type-eface.c @@ -44,9 +44,6 @@ __go_type_equal_empty_interface (const void *vv1, const void *vv2, v2 = (const struct __go_empty_interface *) vv2; v1_descriptor = v1->__type_descriptor; v2_descriptor = v2->__type_descriptor; - if (((uintptr_t) v1_descriptor & reflectFlags) != 0 - || ((uintptr_t) v2_descriptor & reflectFlags) != 0) - runtime_panicstring ("invalid interface value"); if (v1_descriptor == NULL || v2_descriptor == NULL) return v1_descriptor == v2_descriptor; if (!__go_type_descriptors_equal (v1_descriptor, v2_descriptor)) diff --git a/libgo/runtime/go-type.h b/libgo/runtime/go-type.h index fa355ce..51c23557 100644 --- a/libgo/runtime/go-type.h +++ b/libgo/runtime/go-type.h @@ -302,15 +302,6 @@ struct __go_struct_type struct __go_open_array __fields; }; -/* If an empty interface has these bits set in its type pointer, it - was copied from a reflect.Value and is not a valid empty - interface. */ - -enum -{ - reflectFlags = 3, -}; - /* Whether a type descriptor is a pointer. */ static inline _Bool diff --git a/libgo/runtime/iface.goc b/libgo/runtime/iface.goc index 7c74e80..0d5cb5e 100644 --- a/libgo/runtime/iface.goc +++ b/libgo/runtime/iface.goc @@ -32,8 +32,6 @@ func ifacetype(i interface) (d *const_descriptor) { // Convert an empty interface to an empty interface. func ifaceE2E2(e empty_interface) (ret empty_interface, ok bool) { - if(((uintptr_t)e.__type_descriptor&reflectFlags) != 0) - runtime_panicstring("invalid interface value"); ret = e; ok = ret.__type_descriptor != nil; } @@ -53,8 +51,6 @@ func ifaceI2E2(i interface) (ret empty_interface, ok bool) { // Convert an empty interface to a non-empty interface. func ifaceE2I2(inter *descriptor, e empty_interface) (ret interface, ok bool) { - if(((uintptr_t)e.__type_descriptor&reflectFlags) != 0) - runtime_panicstring("invalid interface value"); if (e.__type_descriptor == nil) { ret.__methods = nil; ret.__object = nil; @@ -84,8 +80,6 @@ func ifaceI2I2(inter *descriptor, i interface) (ret interface, ok bool) { // Convert an empty interface to a pointer type. func ifaceE2T2P(inter *descriptor, e empty_interface) (ret *void, ok bool) { - if(((uintptr_t)e.__type_descriptor&reflectFlags) != 0) - runtime_panicstring("invalid interface value"); if (!__go_type_descriptors_equal(inter, e.__type_descriptor)) { ret = nil; ok = 0; @@ -109,8 +103,6 @@ func ifaceI2T2P(inter *descriptor, i interface) (ret *void, ok bool) { // Convert an empty interface to a non-pointer type. func ifaceE2T2(inter *descriptor, e empty_interface, ret *void) (ok bool) { - if(((uintptr_t)e.__type_descriptor&reflectFlags) != 0) - runtime_panicstring("invalid interface value"); if (!__go_type_descriptors_equal(inter, e.__type_descriptor)) { __builtin_memset(ret, 0, inter->__size); ok = 0; diff --git a/libgo/runtime/reflect.goc b/libgo/runtime/reflect.goc index c798b26..4e493ee 100644 --- a/libgo/runtime/reflect.goc +++ b/libgo/runtime/reflect.goc @@ -12,8 +12,6 @@ func ifaceE2I(inter *Type, e Eface, ret *Iface) { const Type *t; Eface err; - if(((uintptr)e.__type_descriptor&reflectFlags) != 0) - runtime_throw("invalid interface value"); t = e.__type_descriptor; if(t == nil) { // explicit conversions require non-nil interface value. |