diff --git a/src/pkg/runtime/iface.c b/src/pkg/runtime/iface.c index 5566d88e3b..634c9e98f6 100644 --- a/src/pkg/runtime/iface.c +++ b/src/pkg/runtime/iface.c @@ -20,19 +20,6 @@ runtime·printeface(Eface e) runtime·printf("(%p,%p)", e.type, e.data); } -/* - * layout of Itab known to compilers - */ -struct Itab -{ - InterfaceType* inter; - Type* type; - Itab* link; - int32 bad; - int32 unused; - void (*fun[])(void); -}; - static Itab* hash[1009]; static Lock ifacelock; diff --git a/src/pkg/runtime/runtime.h b/src/pkg/runtime/runtime.h index cd2f6f0587..51a5aeca91 100644 --- a/src/pkg/runtime/runtime.h +++ b/src/pkg/runtime/runtime.h @@ -62,6 +62,7 @@ typedef struct MCache MCache; typedef struct FixAlloc FixAlloc; typedef struct Iface Iface; typedef struct Itab Itab; +typedef struct InterfaceType InterfaceType; typedef struct Eface Eface; typedef struct Type Type; typedef struct ChanType ChanType; @@ -322,6 +323,17 @@ struct Func int32 locals; // number of 32-bit locals }; +// layout of Itab known to compilers +struct Itab +{ + InterfaceType* inter; + Type* type; + Itab* link; + int32 bad; + int32 unused; + void (*fun[])(void); +}; + struct WinCall { void (*fn)(void*); @@ -823,7 +835,7 @@ void runtime·chansend(ChanType*, Hchan*, byte*, bool*, void*); void runtime·chanrecv(ChanType*, Hchan*, byte*, bool*, bool*); bool runtime·showframe(Func*); -void runtime·ifaceE2I(struct InterfaceType*, Eface, Iface*); +void runtime·ifaceE2I(InterfaceType*, Eface, Iface*); uintptr runtime·memlimit(void);