Minor optimization on image loading 37/272437/10
authorEunki, Hong <eunkiki.hong@samsung.com>
Wed, 16 Mar 2022 18:58:16 +0000 (03:58 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Thu, 31 Mar 2022 13:06:42 +0000 (22:06 +0900)
commit3ff3d757a67b27cd14340e6fbd1cc4035d2cde8c
tree506db8922066c0d015af3931673d12e27d5fb1a6
parentf5c00ac01b401482c5034280f057b7ee429b79eb
Minor optimization on image loading

1. Wrap DALI_UNLIKELY if there was some system / file error.
e.g. fread, fseek faild. malloc faild. image size or format not valid.

2. Reduce Dali::Vector operation more times.
When we use fixed size of Dali::Vector, use void * or std::uint8_t*
instead of &vector[0]. It's for reducing function call of operator[]
so we don't check index range, so we don't call Dali::Vector::Count().

3. Don't setup initial value of buffer for some cases.
Note. gausian-blur.cpp defect will be fixed in Heeyong's stride patch.

4. Reduce useless operations on loader-ico.cpp
Previous code use 4 times memory + buffer overflow error exist
when bitcount is 1 + read mask buffer only for each line. not whole buffer.

Change-Id: I28cdd7468ec4d573e53f4f6f7ad2345bca60b273
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
12 files changed:
dali/internal/imaging/common/file-download.cpp
dali/internal/imaging/common/gif-loading.cpp
dali/internal/imaging/common/loader-astc.cpp
dali/internal/imaging/common/loader-bmp.cpp
dali/internal/imaging/common/loader-gif.cpp
dali/internal/imaging/common/loader-ico.cpp
dali/internal/imaging/common/loader-jpeg-turbo.cpp
dali/internal/imaging/common/loader-ktx.cpp
dali/internal/imaging/common/loader-png.cpp
dali/internal/imaging/common/loader-wbmp.cpp
dali/internal/imaging/common/loader-webp.cpp
dali/internal/imaging/common/webp-loading.cpp