• Jakob Gruber's avatar
    [snapshot] Simplify deserializer APIs · 95f86859
    Jakob Gruber authored
    This moves deserializer setup boilerplate inside the deserializers, and
    makes improper usage less likely. For instance:
    
      ObjectDeserializer deserializer(&scd);
      /* ... deserializer setup ... */
      MaybeHandle<HeapObject> obj = deserializer.Deserialize(isolate);
      /* ... result checks and casts ... */
    
    has now become:
    
      /* All setup and casts inside deserializer, impossible to illegally
         use the same instance multiple times. */
      MaybeHandle<SharedFunctionInfo> maybe_result =
          ObjectDeserializer::DeserializeSharedFunctionInfo(
              isolate, &scd, source);
    
    Bug: v8:6624
    Change-Id: Id5a1848e024e89cf86e5292389ba7c89f31d8e6b
    Reviewed-on: https://chromium-review.googlesource.com/604791
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47219}
    95f86859
snapshot-common.cc 8.96 KB