diff options
Diffstat (limited to 'libgo/runtime/go-unreflect.c')
-rw-r--r-- | libgo/runtime/go-unreflect.c | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/libgo/runtime/go-unreflect.c b/libgo/runtime/go-unreflect.c deleted file mode 100644 index 6f1ea73..0000000 --- a/libgo/runtime/go-unreflect.c +++ /dev/null @@ -1,34 +0,0 @@ -/* go-unreflect.c -- implement unsafe.Unreflect for Go. - - Copyright 2009 The Go Authors. All rights reserved. - Use of this source code is governed by a BSD-style - license that can be found in the LICENSE file. */ - -#include "runtime.h" -#include "go-alloc.h" -#include "go-type.h" -#include "interface.h" - -/* Implement unsafe.Unreflect. */ - -struct __go_empty_interface Unreflect (struct __go_empty_interface type, - void *object) - asm ("libgo_unsafe.unsafe.Unreflect"); - -struct __go_empty_interface -Unreflect (struct __go_empty_interface type, void *object) -{ - struct __go_empty_interface ret; - - if (((uintptr_t) type.__type_descriptor & reflectFlags) != 0) - runtime_panicstring ("invalid interface value"); - - /* FIXME: We should check __type_descriptor to verify that this is - really a type descriptor. */ - ret.__type_descriptor = type.__object; - if (__go_is_pointer_type (ret.__type_descriptor)) - ret.__object = *(void **) object; - else - ret.__object = object; - return ret; -} |