Fix the block stack used by the bitstream cursor.

The previous implementation of the bitstream cursor copied global
abbreviations for each block into its own vector, and deleted the
vector when the vector went out of scope.  Further aggrevating the
situation is that function blocks can have hundreds of global
abbreviations that need to be copied.

This results in over 500k calls to malloc during parsing.  Since PNaCl
compiles using newlib, and uses multiple threads, this introduces a
noticeable slowdown.

This CL fixes this problem by refering to the collected global
abbreviations directly, thereby removing these abbreviation copies.

BUG=None
R=dschuff@chromium.org

Review URL: https://codereview.chromium.org/1798243002 .
3 files changed