From: Russ Cox Date: Fri, 10 Oct 2008 23:21:50 +0000 (-0700) Subject: handle zeroed interface in ifaceI2I X-Git-Tag: weekly.2009-11-06~3005 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=900e076d215d01f08488126db401b6176539efd1;p=gostls13.git handle zeroed interface in ifaceI2I R=r OCL=16938 CL=16938 --- diff --git a/src/runtime/iface.c b/src/runtime/iface.c index 089975b923..de59172d17 100644 --- a/src/runtime/iface.c +++ b/src/runtime/iface.c @@ -231,7 +231,6 @@ sys·ifaceI2T(Sigt *st, Map *im, void *it, void *ret) void sys·ifaceI2I(Sigi *si, Map *im, void *it, Map *retim, void *retit) { - if(debug) { prints("I2I sigi="); printsigi(si); @@ -241,15 +240,17 @@ sys·ifaceI2I(Sigi *si, Map *im, void *it, Map *retim, void *retit) } if(im == nil) { - throw("ifaceI2I: nil map"); - return; + // If incoming interface is uninitialized (zeroed) + // make the outgoing interface zeroed as well. + retim = nil; + retit = nil; + } else { + retit = it; + retim = im; + if(im->sigi != si) + retim = hashmap(si, im->sigt); } - retit = it; - retim = im; - if(im->sigi != si) - retim = hashmap(si, im->sigt); - if(debug) { prints("I2I ret="); printiface(retim, retit);