• Jakob Gruber's avatar
    [base] Extend SmallVector for use with Zone storage · 3a858a91
    Jakob Gruber authored
    This CL adds an Allocator to SmallVector to control how dynamic
    storage is managed. The default value uses the plain old C++
    std::allocator<T>, i.e. acts like malloc/free.
    
    For use with zone memory, one can pass a ZoneAllocator as follows:
    
      // Allocates in zone memory.
      base::SmallVector<int, kInitialSize, ZoneAllocator<int>>
        xs(ZoneAllocator<int>(zone));
    
    Note: this is a follow-up to crrev.com/c/3240823.
    
    Drive-by: hide the internal `reset` function. It doesn't free the
    dynamic backing store; that's a surprise and should not be exposed to
    external use.
    
    Change-Id: I1f92f184924541e2269493fb52c30f2fdec032be
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3257711
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77755}
    3a858a91
small-vector.h 6.21 KB