internal override void Resolve() { if (blob != null) { return; } if (ongoingResolution) { throw new Exception(String.Format( "circular reference in blobs ({0})", Name)); } ongoingResolution = true; WordData wd = TC.Lookup(baseBlobName) as WordData; if (wd == null) { throw new Exception(String.Format( "data word '{0}' based on non-data word '{1}'", Name, baseBlobName)); } wd.Resolve(); blob = wd.blob; offset += wd.offset; ongoingResolution = false; }