@@ -172,8 +172,6 @@ class RawImageData : public ErrorLog {
172172 Mutex mBadPixelMutex ; // Mutex for 'mBadPixelPositions, must be used if more
173173 // than 1 thread is accessing vector
174174
175- private:
176- uint32_t dataRefCount GUARDED_BY (mymutex) = 0;
177175
178176protected:
179177 RawImageType dataType;
@@ -191,7 +189,6 @@ class RawImageData : public ErrorLog {
191189 iPoint2D mOffset ;
192190 iPoint2D uncropped_dim;
193191 std::unique_ptr<TableLookUp> table;
194- Mutex mymutex;
195192};
196193
197194class RawImageDataU16 final : public RawImageData {
@@ -235,17 +232,16 @@ class RawImageDataFloat final : public RawImageData {
235232 static RawImage create (const iPoint2D& dim,
236233 RawImageType type = RawImageType::UINT16,
237234 uint32_t componentsPerPixel = 1 );
238- RawImageData* operator ->() const { return p_; }
239- RawImageData& operator *() const { return *p_ ; }
235+ RawImageData* operator ->() const { return p_. operator ->() ; }
236+ RawImageData& operator *() const { return p_. operator *() ; }
240237 explicit RawImage (RawImageData* p); // p must not be NULL
241- ~RawImage ();
242238 RawImage (const RawImage& p);
243239 RawImage& operator =(const RawImage& p) noexcept ;
244240 RawImage& operator =(RawImage&& p) noexcept ;
245241
246- RawImageData* get () { return p_; }
242+ RawImageData* get () { return p_. get () ; }
247243 private:
248- RawImageData* p_; // p_ is never NULL
244+ std::shared_ptr< RawImageData> p_; // p_ is never NULL
249245 };
250246
251247inline RawImage RawImage::create (RawImageType type) {
0 commit comments