code: public synchronized void mergeChild(SymbolTable child)
      {
          // Let's do a basic sanity check first:
          if (child.size() <= size()) { // nothing to add
              return;
          }
  
          // Okie dokie, let's get the data in!
          mSymbols = child.mSymbols;
          mBuckets = child.mBuckets;
          mSize = child.mSize;
          mSizeThreshold = child.mSizeThreshold;
          mIndexMask = child.mIndexMask;
          mThisVersion++; // to prevent other children from overriding
  
          // Dirty flag... well, let's just clear it, to force copying just
          // in case. Shouldn't really matter, for master tables.
          mDirty = false;
  
          /* However, we have to mark child as dirty, so that it will not
           * be modifying arrays we "took over" (since child may have
           * returned an updated table before it stopped fully using
           * the SymbolTable: for example, it may still use it for
           * parsing PI targets in epilog)
           */
          child.mDirty = false;
      }
docs: Method that allows contents of child table to potentially be
  "merged in" with contents of this symbol table.
  <p>
  Note that caller has to make sure symbol table passed in is
  really a child or sibling of this symbol table.