add creator for missing types, to avoid crashes when
signature is absent from object file.
R=rsc
DELTA=18 (18 added, 0 deleted, 0 changed)
OCL=18315
CL=18323
diff --git a/src/lib/reflect/value.go b/src/lib/reflect/value.go
index 554da2d..82ceb53 100644
--- a/src/lib/reflect/value.go
+++ b/src/lib/reflect/value.go
@@ -60,6 +60,21 @@
func AddrToPtrString(Addr) *string
func AddrToPtrBool(Addr) *bool
+// -- Missing
+
+export type MissingValue interface {
+ Kind() int;
+ Type() Type;
+}
+
+type MissingValueStruct struct {
+ CommonV
+}
+
+func MissingCreator(typ Type, addr Addr) Value {
+ return &MissingValueStruct{ CommonV{IntKind, typ, addr} }
+}
+
// -- Int
export type IntValue interface {
@@ -676,6 +691,7 @@
func init() {
creator = new(map[int] Creator);
+ creator[MissingKind] = &MissingCreator;
creator[IntKind] = &IntCreator;
creator[Int8Kind] = &Int8Creator;
creator[Int16Kind] = &Int16Creator;