Skip to content

Commit e9b863b

Browse files
committed
refactored RawImageData reference counting
using shared_ptr instead of RawImage, also not all places require reference counting
1 parent 41b07f1 commit e9b863b

File tree

96 files changed

+271
-342
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+271
-342
lines changed

fuzz/librawspeed/decompressors/Cr2Decompressor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
3939
const rawspeed::DataBuffer db(b, rawspeed::Endianness::little);
4040
rawspeed::ByteStream bs(db);
4141

42-
rawspeed::RawImage mRaw(CreateRawImage(bs));
42+
auto mRaw(CreateRawImage(bs));
4343

4444
using slice_type = uint16_t;
4545
const auto numSlices = bs.get<slice_type>();
@@ -48,7 +48,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
4848

4949
const rawspeed::Cr2Slicing slicing(numSlices, sliceWidth, lastSliceWidth);
5050

51-
rawspeed::Cr2Decompressor c(bs, mRaw);
51+
rawspeed::Cr2Decompressor c(bs, mRaw.get());
5252
mRaw->createData();
5353
c.decode(slicing);
5454

fuzz/librawspeed/decompressors/CrwDecompressor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
3939
const rawspeed::DataBuffer db(b, rawspeed::Endianness::little);
4040
rawspeed::ByteStream bs(db);
4141

42-
rawspeed::RawImage mRaw(CreateRawImage(bs));
42+
auto mRaw(CreateRawImage(bs));
4343

4444
const uint32_t dec_table = bs.getU32();
4545
const uint32_t lowbits = bs.getU32();
4646

47-
rawspeed::CrwDecompressor c(mRaw, dec_table, lowbits,
47+
rawspeed::CrwDecompressor c(mRaw.get(), dec_table, lowbits,
4848
bs.getStream(bs.getRemainSize()));
4949
mRaw->createData();
5050
c.decompress();

fuzz/librawspeed/decompressors/DummyLJpegDecompressor.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class DummyLJpegDecompressor final
3939

4040
public:
4141
DummyLJpegDecompressor(const rawspeed::ByteStream& bs,
42-
const rawspeed::RawImage& img)
42+
rawspeed::RawImageData* img)
4343
: AbstractLJpegDecompressor(bs, img) {}
4444

4545
void decode() { AbstractLJpegDecompressor::decode(); }
@@ -55,9 +55,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
5555
const rawspeed::DataBuffer db(b, rawspeed::Endianness::little);
5656
rawspeed::ByteStream bs(db);
5757

58-
rawspeed::RawImage mRaw(CreateRawImage(bs));
58+
auto mRaw(CreateRawImage(bs));
5959

60-
DummyLJpegDecompressor d(bs, mRaw);
60+
DummyLJpegDecompressor d(bs, mRaw.get());
6161
d.decode();
6262
mRaw->createData();
6363

fuzz/librawspeed/decompressors/FujiDecompressor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
3939
const rawspeed::DataBuffer db(b, rawspeed::Endianness::little);
4040
rawspeed::ByteStream bs(db);
4141

42-
rawspeed::RawImage mRaw(CreateRawImage(bs));
42+
auto mRaw(CreateRawImage(bs));
4343
mRaw->cfa = CreateCFA(bs);
4444

45-
rawspeed::FujiDecompressor f(mRaw, bs.getStream(bs.getRemainSize()));
45+
rawspeed::FujiDecompressor f(mRaw.get(), bs.getStream(bs.getRemainSize()));
4646
mRaw->createData();
4747
f.decompress();
4848

fuzz/librawspeed/decompressors/HasselbladDecompressor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
3939
const rawspeed::DataBuffer db(b, rawspeed::Endianness::little);
4040
rawspeed::ByteStream bs(db);
4141

42-
rawspeed::RawImage mRaw(CreateRawImage(bs));
42+
auto mRaw(CreateRawImage(bs));
4343

4444
const auto pixelBaseOffset = bs.get<int>();
4545

46-
rawspeed::HasselbladDecompressor h(bs, mRaw);
46+
rawspeed::HasselbladDecompressor h(bs, mRaw.get());
4747
mRaw->createData();
4848
h.decode(pixelBaseOffset);
4949

fuzz/librawspeed/decompressors/KodakDecompressor.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
3939
const rawspeed::DataBuffer db(b, rawspeed::Endianness::little);
4040
rawspeed::ByteStream bs(db);
4141

42-
rawspeed::RawImage mRaw(CreateRawImage(bs));
42+
auto mRaw(CreateRawImage(bs));
4343

4444
const bool bps = bs.getU32();
4545
const bool uncorrectedRawValues = bs.getU32();
4646

47-
rawspeed::KodakDecompressor k(mRaw, bs.getStream(bs.getRemainSize()), bps,
48-
uncorrectedRawValues);
47+
rawspeed::KodakDecompressor k(mRaw.get(), bs.getStream(bs.getRemainSize()),
48+
bps, uncorrectedRawValues);
4949

5050
mRaw->createData();
5151

fuzz/librawspeed/decompressors/LJpegDecompressor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
3939
const rawspeed::DataBuffer db(b, rawspeed::Endianness::little);
4040
rawspeed::ByteStream bs(db);
4141

42-
rawspeed::RawImage mRaw(CreateRawImage(bs));
42+
auto mRaw(CreateRawImage(bs));
4343

4444
const auto offsetX = bs.getU32();
4545
const auto offsetY = bs.getU32();
4646
const auto width = bs.getU32();
4747
const auto height = bs.getU32();
4848
const auto fixDng16Bug = bs.getU32();
4949

50-
rawspeed::LJpegDecompressor j(bs, mRaw);
50+
rawspeed::LJpegDecompressor j(bs, mRaw.get());
5151
mRaw->createData();
5252
j.decode(offsetX, offsetY, width, height, fixDng16Bug);
5353

fuzz/librawspeed/decompressors/NikonDecompressor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
3939
const rawspeed::DataBuffer db(b, rawspeed::Endianness::little);
4040
rawspeed::ByteStream bs(db);
4141

42-
rawspeed::RawImage mRaw(CreateRawImage(bs));
42+
auto mRaw(CreateRawImage(bs));
4343

4444
const auto bitsPS = bs.get<uint32_t>();
4545
const auto uncorrectedRawValues = bs.get<uint32_t>();
4646
const auto medataLength = bs.get<uint32_t>();
4747
rawspeed::ByteStream metaData = bs.getStream(medataLength);
4848
rawspeed::ByteStream rawData = bs.getStream(bs.getRemainSize());
4949

50-
rawspeed::NikonDecompressor n(mRaw, metaData, bitsPS);
50+
rawspeed::NikonDecompressor n(mRaw.get(), metaData, bitsPS);
5151
mRaw->createData();
5252
n.decompress(rawData, uncorrectedRawValues);
5353

fuzz/librawspeed/decompressors/OlympusDecompressor.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
3939
const rawspeed::DataBuffer db(b, rawspeed::Endianness::little);
4040
rawspeed::ByteStream bs(db);
4141

42-
rawspeed::RawImage mRaw(CreateRawImage(bs));
42+
auto mRaw(CreateRawImage(bs));
4343

44-
rawspeed::OlympusDecompressor o(mRaw);
44+
rawspeed::OlympusDecompressor o(mRaw.get());
4545

4646
mRaw->createData();
4747

fuzz/librawspeed/decompressors/PanasonicDecompressorV4.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) {
3939
const rawspeed::DataBuffer db(b, rawspeed::Endianness::little);
4040
rawspeed::ByteStream bs(db);
4141

42-
rawspeed::RawImage mRaw(CreateRawImage(bs));
42+
auto mRaw(CreateRawImage(bs));
4343

4444
const auto zero_is_not_bad = bs.get<uint32_t>();
4545
const auto section_split_offset = bs.get<uint32_t>();
4646
rawspeed::ByteStream rawData = bs.getStream(bs.getRemainSize());
4747

48-
rawspeed::PanasonicDecompressorV4 p(mRaw, rawData, zero_is_not_bad,
48+
rawspeed::PanasonicDecompressorV4 p(mRaw.get(), rawData, zero_is_not_bad,
4949
section_split_offset);
5050
mRaw->createData();
5151
p.decompress();

0 commit comments

Comments
 (0)