• Show log

    Commit

  • Hash : 12b3d52d
    Author : Igor Nazarov
    Date : 2023-03-10T17:02:55

    Prevent bugs in "FastVector" class.
    
    FastVector does not call destructors when resizing down and constructors
    when resizing up. This may cause reuse of previous values after resizing
    up and prevent releasing resource in destructors.
    
    Above problems only relevant for non trivially
    constructible/destructible types.
    
    For performance reasons (chromium:1417087) this CL disables using
    trivially destructible types at all and adds special resizing methods
    for non trivially constructible types.
    
    Almost all uses of FastVector was already using trivially destructible
    types. Except "angle::FixedVector" used in "rx::vk::SubpassVector<>".
    However, "angle::FixedVector" is unnecessarily calls "clear()" in the
    destructor. This CL removed "clear()" and made the destructor trivial.
    
    All non trivial constructor cases are limited to
    "angle::spirv::BoxedUint32<>" used in
    "angle::spirv::FastVectorHelper<>".
    No problems found because of the possibility to reuse previous values.
    All "resize(count)" methods replaced with special versions.
    
    Therefore, this CL does not fix actual bugs, but rather prevents
    incorrect use in the future.
    
    Bug: angleproject:8021
    Bug: chromium:1417087
    Change-Id: Id65d75575f2f582450b1cc45dc6b1f2bf3bc5289
    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4328286
    Reviewed-by: Charlie Lao <cclao@google.com>
    Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
    Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/angle.git
    Git SSH git@git.kmx.io:kc3-lang/angle.git
    Public access ? public
    Description

    A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

    Homepage

    Github

    Users
    kc3_lang_org www_kmx_io thodg_w thodg_l thodg thodg_m
    Tags