• Matt Giuca's avatar
    gfx::Image, ImageFamily: Add and remove copying/moving methods. · 3d83f26a
    Matt Giuca authored
    Image:
    - Adds move constructor/assignment. Not technically required as Image is
      cheaply copyable, but this allows more efficient moving without
      incrementing/decrementing the refcount. Also safer for multi-threaded
      usage.
    - Removes SwapRepresentations. Was unused, and superseded by std::move.
    
    ImageFamily:
    - Removes copy constructor/assignment. ImageFamily can be fairly
      heavyweight, so it's best to move it rather than copying. Also it is
      heavily used across threads and accidental ImageFamily copying is
      responsible for data races (https://crbug.com/749342).
    - Adds Clone method, an explicit copy operator for use if necessary.
    - Adds move constructor/assignment. This should be used where possible.
    
    BUG=600237,749342
    
    Change-Id: I00482c8440d62edb8d9fb216c3de65bf4102d153
    Reviewed-on: https://chromium-review.googlesource.com/588033Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
    Reviewed-by: default avatarBen Wells <benwells@chromium.org>
    Commit-Queue: Matt Giuca <mgiuca@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#490704}
    3d83f26a
image_family.h 6.44 KB