Ejemplo n.º 1
0
    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;
    }