summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/reflect/type.go12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/reflect/type.go b/src/lib/reflect/type.go
index 1dc95104d..b02ad32d7 100644
--- a/src/lib/reflect/type.go
+++ b/src/lib/reflect/type.go
@@ -10,6 +10,7 @@ package reflect
import (
"utf8";
"sync";
+ "unsafe";
)
type Type interface
@@ -47,9 +48,11 @@ const (
UintptrKind;
)
-// Int is guaranteed large enough to store a size.
-var ptrsize int
-var interfacesize int
+var tmp_interface interface{} // used just to compute sizes of these constants
+const (
+ ptrsize = unsafe.Sizeof(&tmp_interface);
+ interfacesize = unsafe.Sizeof(tmp_interface);
+)
var missingString = "$missing$" // syntactic name for undefined type names
var dotDotDotString = "..."
@@ -401,9 +404,6 @@ func unlock() {
}
func init() {
- ptrsize = 8; // TODO: compute this
- interfacesize = 2*ptrsize; // TODO: compute this
-
lock(); // not necessary because of init ordering but be safe.
types = make(map[string] Type);