CsDebugScript.CodeGen.Symbol.LinkSymbols C# (CSharp) Method

LinkSymbols() private method

Links the symbols.
private LinkSymbols ( Symbol s ) : void
s Symbol
return void
        internal void LinkSymbols(Symbol s)
        {
            s.baseClasses = baseClasses;
            s.elementType = elementType;
            s.fields = fields;
            s.pointerType = pointerType;
            s.userType = userType;
        }

Usage Example

Example #1
0
        /// <summary>
        /// Gets the symbol from the cache or adds new entry in the cache if symbol wasn't previously found.
        /// </summary>
        /// <param name="symbol">The symbol.</param>
        internal Symbol GetSymbol(IDiaSymbol symbol)
        {
            if (symbol == null)
            {
                return(null);
            }

            Symbol s;
            uint   symbolId = symbol.symIndexId;

            if (!symbolById.TryGetValue(symbolId, out s))
            {
                s = new Symbol(this, symbol);
                lock (this)
                {
                    Symbol previousSymbol = null;

                    symbolById.TryAdd(symbolId, s);
                    if (s.Tag != SymTagEnum.SymTagExe)
                    {
                        if (!symbolByName.TryGetValue(s.Name, out previousSymbol))
                        {
                            symbolByName.TryAdd(s.Name, s);
                        }
                        else
                        {
                            previousSymbol.LinkSymbols(s);
                        }
                    }
                }

                s.InitializeCache();
            }

            return(s);
        }