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-19 15:23:43 -07: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-16 21:48:07 -07: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-01-20 14:40:40 -08:00
2008-10-29 13:58:12 -07:00
2008-08-11 22:07: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-20 14:40:40 -08:00
2009-01-26 17:37:05 -08:00
2009-01-26 17:37:05 -08: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
2008-08-11 22:07:49 -07:00
2009-05-19 15:23:43 -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-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-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-01-20 14:40:40 -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-01-20 14:40:40 -08:00
2009-01-20 14:40:40 -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
run
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
2008-08-11 22:07:49 -07:00
2009-01-20 14:40:40 -08:00
2008-08-11 22:07:49 -07:00