Russ Cox
2da5022bcf
change representation of interface values.
...
this is not a user-visible change.
before, all interface values were
struct Itype {
Sigt *type;
Sigi *inter;
void *method[n];
}
struct Iface {
void *addr;
Itype *itype;
}
the itype is basically a vtable, but it's unnecessary
if the static type is interface{ }.
for interface values with static type empty, the
new representation is
struct Eface {
void *addr;
Sigt *type;
}
this complicates the code somewhat, but
it reduces the number of Itypes that
have to be computed and cached,
it opens up opportunities to avoid function
calls in a few common cases,
and it will make it possible to lay out
interface{} values at compile time,
which i think i'll need for the new reflection.
R=ken
OCL=28701
CL=29121
2009-05-20 14:57:55 -07:00
..
2009-05-15 13:17:07 -07:00
2009-05-16 23:12:28 -07:00
2009-05-19 15:23:43 -07:00
2009-05-08 15:21:41 -07:00
2009-05-16 23:12:28 -07:00
2009-05-08 15:21:41 -07:00
2009-04-16 20:52:37 -07:00
2009-05-08 15:21:41 -07:00
2009-03-23 18:50:35 -07:00
2009-03-03 08:39:12 -08:00
2009-03-03 08:39:12 -08:00
2009-01-26 09:56:42 -08:00
2009-01-26 09:56:42 -08:00
2009-01-26 09:56:42 -08:00
2009-01-26 09:56:42 -08:00
2009-03-03 08:39:12 -08:00
2009-03-24 16:40:38 -07:00
2009-03-16 21:48:07 -07:00
2009-03-12 19:04:38 -07:00
2009-03-12 19:04:38 -07:00
2009-05-08 15:40:14 -07:00
2009-03-03 08:39:12 -08:00
2009-05-05 11:23:39 -07:00
2009-04-19 21:12:48 -07:00
2009-04-28 07:16:03 -07:00
2009-01-27 15:08:08 -08:00
2008-10-08 15:33:18 -07:00
2009-05-08 15:21:41 -07:00
2009-03-12 19:04:38 -07:00
2009-02-05 12:54:15 -08:00
2009-01-29 17:38:58 -08:00
2009-01-20 14:40:40 -08:00
2008-10-29 13:58:12 -07:00
2008-08-11 22:07:49 -07:00
2008-09-19 14:39:49 -07:00
2008-12-18 22:37:22 -08:00
2008-10-06 16:27:14 -07:00
2009-02-06 15:57:02 -08:00
2009-01-30 14:39:31 -08:00
2009-01-20 14:40:40 -08:00
2009-01-26 17:37:05 -08:00
2009-01-26 17:37:05 -08:00
2009-05-20 14:57:55 -07:00
2009-01-20 14:40:40 -08:00
2008-08-11 22:07:49 -07:00
2009-01-20 14:40:40 -08:00
2009-05-08 15:21:41 -07:00
2008-08-11 22:07:49 -07:00
2009-05-19 15:23:43 -07:00
2009-05-08 15:40:14 -07:00
2009-03-03 08:39:12 -08:00
2009-03-03 08:39:12 -08:00
2009-05-08 15:21:41 -07:00
2009-05-12 16:09:47 -07:00
2009-05-12 16:09:47 -07:00
2009-05-12 16:09:47 -07:00
2009-05-12 16:08:16 -07:00
2009-05-12 16:09:47 -07:00
2009-05-12 16:09:47 -07:00
2009-05-12 16:09:47 -07:00
2009-05-12 16:09:47 -07:00
2009-05-19 15:23:43 -07:00
2009-05-12 16:09:47 -07:00
2009-05-12 16:08:16 -07:00
2009-01-20 14:40:40 -08:00
2009-01-20 14:40:40 -08:00
2008-08-11 22:07:49 -07:00
2009-01-15 13:48:11 -08:00
2009-03-03 08:39:12 -08:00
2009-01-20 14:40:40 -08:00
2009-01-16 16:12:14 -08:00
2009-03-23 18:32:37 -07:00
2009-01-20 14:40:40 -08:00
2009-01-20 14:40:40 -08:00
2009-03-03 08:39:12 -08:00
2009-01-20 14:40:40 -08:00
2009-01-20 14:40:40 -08:00
2009-03-03 08:39:12 -08:00
2009-01-20 14:40:40 -08:00
2008-09-17 14:08:52 -07:00
2009-03-20 11:32:58 -07:00
2008-11-17 12:44:22 -08:00
2009-01-20 14:40:40 -08:00
2008-12-03 14:21:28 -08:00
2008-08-11 22:07:49 -07:00
2009-04-10 06:22:41 -07:00
2009-05-08 15:21:41 -07:00
2009-05-11 14:10:34 -07:00
2009-05-08 15:21:41 -07:00
2008-08-11 22:07:49 -07:00
2009-01-20 14:40:40 -08:00
2008-08-11 22:07:49 -07:00
2009-05-08 15:21:41 -07:00
2009-05-11 14:10:34 -07:00
2008-11-17 12:19:02 -08:00
2009-04-16 20:52:37 -07:00