Fixed a nasty bug in block_context_copy.

Previous code was just assigning to an uninitialzed field, so the
compiler was dropping it; by changing this to a ptr::write the existing
value is no longer dropped.