fixbug: various pointers were not updated on expand_multihash_tables()

expand_multihash_tables() tries to allocate twice large amount of
multi hash-tables using alloc() and free() form, so delivered
pointers that referenced old region, but we didn't update it.
Eventually, it leads random buffer corruption because hash
construction peformed on the buffer already released!