/src/dng_sdk/source/dng_auto_ptr.h
Line | Count | Source (jump to first uncovered line) |
1 | | /*****************************************************************************/ |
2 | | // Copyright 2006 Adobe Systems Incorporated |
3 | | // All Rights Reserved. |
4 | | // |
5 | | // NOTICE: Adobe permits you to use, modify, and distribute this file in |
6 | | // accordance with the terms of the Adobe license agreement accompanying it. |
7 | | /*****************************************************************************/ |
8 | | |
9 | | /* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_auto_ptr.h#2 $ */ |
10 | | /* $DateTime: 2012/07/11 10:36:56 $ */ |
11 | | /* $Change: 838485 $ */ |
12 | | /* $Author: tknoll $ */ |
13 | | |
14 | | /** \file |
15 | | * Class to implement std::auto_ptr like functionality even on platforms which do not |
16 | | * have a full Standard C++ library. |
17 | | */ |
18 | | |
19 | | /*****************************************************************************/ |
20 | | |
21 | | #ifndef __dng_auto_ptr__ |
22 | | #define __dng_auto_ptr__ |
23 | | |
24 | | #include "dng_memory.h" |
25 | | |
26 | | #include <memory> |
27 | | #include <stddef.h> |
28 | | #include <stdlib.h> |
29 | | |
30 | | /*****************************************************************************/ |
31 | | |
32 | | // The following template has similar functionality to the STL auto_ptr, without |
33 | | // requiring all the weight of STL. |
34 | | |
35 | | /*****************************************************************************/ |
36 | | |
37 | | /// \brief A class intended to be used in stack scope to hold a pointer from new. The |
38 | | /// held pointer will be deleted automatically if the scope is left without calling |
39 | | /// Release on the AutoPtr first. |
40 | | |
41 | | template<class T> |
42 | | class AutoPtr |
43 | | { |
44 | | |
45 | | private: |
46 | | |
47 | | T *p_; |
48 | | |
49 | | public: |
50 | | |
51 | | /// Construct an AutoPtr with no referent. |
52 | | |
53 | 9.07M | AutoPtr () : p_ (0) { } AutoPtr<dng_negative>::AutoPtr() Line | Count | Source | 53 | 126k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_image>::AutoPtr() Line | Count | Source | 53 | 329k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_memory_block>::AutoPtr() Line | Count | Source | 53 | 2.69M | AutoPtr () : p_ (0) { } |
AutoPtr<dng_metadata>::AutoPtr() Line | Count | Source | 53 | 47.8k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_tiff_directory>::AutoPtr() Line | Count | Source | 53 | 352k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_basic_tag_set>::AutoPtr() Line | Count | Source | 53 | 352k | AutoPtr () : p_ (0) { } |
AutoPtr<profile_tag_set>::AutoPtr() Line | Count | Source | 53 | 16.0k | AutoPtr () : p_ (0) { } |
AutoPtr<color_tag_set>::AutoPtr() Line | Count | Source | 53 | 16.0k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_ifd>::AutoPtr() Line | Count | Source | 53 | 4.20M | AutoPtr () : p_ (0) { } |
AutoPtr<dng_exif>::AutoPtr() Line | Count | Source | 53 | 176k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_shared>::AutoPtr() Line | Count | Source | 53 | 131k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_linearize_plane>::AutoPtr() Line | Count | Source | 53 | 82.1k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_linearization_info>::AutoPtr() Line | Count | Source | 53 | 44.9k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_mosaic_info>::AutoPtr() Line | Count | Source | 53 | 44.9k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_jpeg_image>::AutoPtr() Line | Count | Source | 53 | 78.3k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_preview>::AutoPtr() Line | Count | Source | 53 | 324k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_hue_sat_map>::AutoPtr() Line | Count | Source | 53 | 13.3k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_1d_table>::AutoPtr() Line | Count | Source | 53 | 26.6k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_spline_solver>::AutoPtr() Line | Count | Source | 53 | 6.81k | AutoPtr () : p_ (0) { } |
AutoPtr<dng_bad_pixel_list>::AutoPtr() Line | Count | Source | 53 | 742 | AutoPtr () : p_ (0) { } |
AutoPtr<dng_gain_map>::AutoPtr() Line | Count | Source | 53 | 1.01k | AutoPtr () : p_ (0) { } |
|
54 | | |
55 | | /// Construct an AutoPtr which owns the argument pointer. |
56 | | /// \param p pointer which constructed AutoPtr takes ownership of. p will be |
57 | | /// deleted on destruction or Reset unless Release is called first. |
58 | | |
59 | 615k | explicit AutoPtr (T *p) : p_( p ) { } AutoPtr<dng_preview>::AutoPtr(dng_preview*) Line | Count | Source | 59 | 3.42k | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_memory_block>::AutoPtr(dng_memory_block*) Line | Count | Source | 59 | 233k | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_metadata>::AutoPtr(dng_metadata*) Line | Count | Source | 59 | 16.0k | explicit AutoPtr (T *p) : p_( p ) { } |
Unexecuted instantiation: AutoPtr<dng_warp_params>::AutoPtr(dng_warp_params*) AutoPtr<dng_image>::AutoPtr(dng_image*) Line | Count | Source | 59 | 15.5k | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_bilinear_interpolator>::AutoPtr(dng_bilinear_interpolator*) Line | Count | Source | 59 | 331 | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_exif>::AutoPtr(dng_exif*) Line | Count | Source | 59 | 82.4k | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_negative>::AutoPtr(dng_negative*) Line | Count | Source | 59 | 44.9k | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_camera_profile>::AutoPtr(dng_camera_profile*) Line | Count | Source | 59 | 148k | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_opcode>::AutoPtr(dng_opcode*) Line | Count | Source | 59 | 50.5k | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_jpeg_image>::AutoPtr(dng_jpeg_image*) Line | Count | Source | 59 | 4.24k | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_color_spec>::AutoPtr(dng_color_spec*) Line | Count | Source | 59 | 1.68k | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_simple_image>::AutoPtr(dng_simple_image*) Line | Count | Source | 59 | 14.0k | explicit AutoPtr (T *p) : p_( p ) { } |
AutoPtr<dng_gain_map>::AutoPtr(dng_gain_map*) Line | Count | Source | 59 | 187 | explicit AutoPtr (T *p) : p_( p ) { } |
Unexecuted instantiation: AutoPtr<dng_hue_sat_map>::AutoPtr(dng_hue_sat_map*) |
60 | | |
61 | | /// Reset is called on destruction. |
62 | | |
63 | | ~AutoPtr (); |
64 | | |
65 | | /// Call Reset with a pointer from new. Uses T's default constructor. |
66 | | |
67 | | void Alloc (); |
68 | | |
69 | | /// Return the owned pointer of this AutoPtr, NULL if none. No change in |
70 | | /// ownership or other effects occur. |
71 | | |
72 | 108M | T *Get () const { return p_; } AutoPtr<dng_image>::Get() const Line | Count | Source | 72 | 641k | T *Get () const { return p_; } |
AutoPtr<dng_preview>::Get() const Line | Count | Source | 72 | 6.85k | T *Get () const { return p_; } |
AutoPtr<dng_negative>::Get() const Line | Count | Source | 72 | 63.7k | T *Get () const { return p_; } |
AutoPtr<dng_memory_block>::Get() const Line | Count | Source | 72 | 726k | T *Get () const { return p_; } |
AutoPtr<dng_exif>::Get() const Line | Count | Source | 72 | 570k | T *Get () const { return p_; } |
AutoPtr<dng_linearization_info>::Get() const Line | Count | Source | 72 | 203k | T *Get () const { return p_; } |
AutoPtr<dng_mosaic_info>::Get() const Line | Count | Source | 72 | 100k | T *Get () const { return p_; } |
AutoPtr<dng_metadata>::Get() const Line | Count | Source | 72 | 334k | T *Get () const { return p_; } |
AutoPtr<dng_shared>::Get() const Line | Count | Source | 72 | 784k | T *Get () const { return p_; } |
AutoPtr<dng_ifd>::Get() const Line | Count | Source | 72 | 495k | T *Get () const { return p_; } |
AutoPtr<dng_camera_profile>::Get() const Line | Count | Source | 72 | 2.83M | T *Get () const { return p_; } |
AutoPtr<dng_jpeg_image>::Get() const Line | Count | Source | 72 | 104k | T *Get () const { return p_; } |
AutoPtr<dng_hue_sat_map>::Get() const Line | Count | Source | 72 | 101M | T *Get () const { return p_; } |
Unexecuted instantiation: AutoPtr<dng_1d_table>::Get() const Unexecuted instantiation: AutoPtr<dng_spline_solver>::Get() const |
73 | | |
74 | | /// Return the owned pointer of this AutoPtr, NULL if none. The AutoPtr gives |
75 | | /// up ownership and takes NULL as its value. |
76 | | |
77 | | T *Release (); |
78 | | |
79 | | /// If a pointer is owned, it is deleted. Ownership is taken of passed in |
80 | | /// pointer. |
81 | | /// \param p pointer which constructed AutoPtr takes ownership of. p will be |
82 | | /// deleted on destruction or Reset unless Release is called first. |
83 | | |
84 | | void Reset (T *p); |
85 | | |
86 | | /// If a pointer is owned, it is deleted and the AutoPtr takes NULL as its |
87 | | /// value. |
88 | | |
89 | | void Reset (); |
90 | | |
91 | | /// Allows members of the owned pointer to be accessed directly. It is an |
92 | | /// error to call this if the AutoPtr has NULL as its value. |
93 | | |
94 | 1.28G | T *operator-> () const { return p_; } AutoPtr<dng_negative>::operator->() const Line | Count | Source | 94 | 476k | T *operator-> () const { return p_; } |
AutoPtr<dng_image>::operator->() const Line | Count | Source | 94 | 129k | T *operator-> () const { return p_; } |
AutoPtr<dng_preview>::operator->() const Line | Count | Source | 94 | 17.1k | T *operator-> () const { return p_; } |
AutoPtr<dng_memory_block>::operator->() const Line | Count | Source | 94 | 1.28G | T *operator-> () const { return p_; } |
AutoPtr<dng_metadata>::operator->() const Line | Count | Source | 94 | 82.5k | T *operator-> () const { return p_; } |
AutoPtr<dng_ifd>::operator->() const Line | Count | Source | 94 | 2.59M | T *operator-> () const { return p_; } |
AutoPtr<dng_tiff_directory>::operator->() const Line | Count | Source | 94 | 1.17k | T *operator-> () const { return p_; } |
AutoPtr<dng_exif>::operator->() const Line | Count | Source | 94 | 193k | T *operator-> () const { return p_; } |
AutoPtr<dng_shared>::operator->() const Line | Count | Source | 94 | 1.18M | T *operator-> () const { return p_; } |
Unexecuted instantiation: AutoPtr<dng_warp_params>::operator->() const AutoPtr<dng_linearize_plane>::operator->() const Line | Count | Source | 94 | 119k | T *operator-> () const { return p_; } |
AutoPtr<dng_bilinear_interpolator>::operator->() const Line | Count | Source | 94 | 15.8k | T *operator-> () const { return p_; } |
AutoPtr<dng_camera_profile>::operator->() const Line | Count | Source | 94 | 319k | T *operator-> () const { return p_; } |
AutoPtr<dng_jpeg_image>::operator->() const Line | Count | Source | 94 | 8.49k | T *operator-> () const { return p_; } |
AutoPtr<dng_opcode>::operator->() const Line | Count | Source | 94 | 101k | T *operator-> () const { return p_; } |
AutoPtr<dng_color_spec>::operator->() const Line | Count | Source | 94 | 6.79k | T *operator-> () const { return p_; } |
AutoPtr<dng_simple_image>::operator->() const Line | Count | Source | 94 | 14.0k | T *operator-> () const { return p_; } |
AutoPtr<dng_bad_pixel_list>::operator->() const Line | Count | Source | 94 | 186k | T *operator-> () const { return p_; } |
Unexecuted instantiation: AutoPtr<dng_1d_table>::operator->() const AutoPtr<dng_gain_map>::operator->() const Line | Count | Source | 94 | 152k | T *operator-> () const { return p_; } |
Unexecuted instantiation: AutoPtr<dng_hue_sat_map>::operator->() const |
95 | | |
96 | | /// Returns a reference to the object that the owned pointer points to. It is |
97 | | /// an error to call this if the AutoPtr has NULL as its value. |
98 | | |
99 | 74.8k | T &operator* () const { return *p_; } AutoPtr<dng_negative>::operator*() const Line | Count | Source | 99 | 6.81k | T &operator* () const { return *p_; } |
AutoPtr<dng_image>::operator*() const Line | Count | Source | 99 | 18.1k | T &operator* () const { return *p_; } |
AutoPtr<dng_preview>::operator*() const Line | Count | Source | 99 | 24.3k | T &operator* () const { return *p_; } |
AutoPtr<dng_metadata>::operator*() const Line | Count | Source | 99 | 18.7k | T &operator* () const { return *p_; } |
AutoPtr<dng_tiff_directory>::operator*() const Line | Count | Source | 99 | 3.39k | T &operator* () const { return *p_; } |
Unexecuted instantiation: AutoPtr<dng_ifd>::operator*() const AutoPtr<dng_basic_tag_set>::operator*() const Line | Count | Source | 99 | 3.39k | T &operator* () const { return *p_; } |
Unexecuted instantiation: AutoPtr<dng_gain_map>::operator*() const |
100 | | |
101 | | /// Swap with another auto ptr. |
102 | | |
103 | | friend inline void Swap (AutoPtr< T > &x, AutoPtr< T > &y) |
104 | | { |
105 | | T* temp = x.p_; |
106 | | x.p_ = y.p_; |
107 | | y.p_ = temp; |
108 | | } |
109 | | |
110 | | private: |
111 | | |
112 | | // Hidden copy constructor and assignment operator. I don't think the STL |
113 | | // "feature" of grabbing ownership of the pointer is a good idea. |
114 | | |
115 | | AutoPtr (AutoPtr<T> &rhs); |
116 | | |
117 | | AutoPtr<T> & operator= (AutoPtr<T> &rhs); |
118 | | |
119 | | }; |
120 | | |
121 | | /*****************************************************************************/ |
122 | | |
123 | | template<class T> |
124 | | AutoPtr<T>::~AutoPtr () |
125 | 9.69M | { |
126 | | |
127 | 9.69M | delete p_; |
128 | 9.69M | p_ = 0; |
129 | | |
130 | 9.69M | } AutoPtr<dng_spline_solver>::~AutoPtr() Line | Count | Source | 125 | 6.81k | { | 126 | | | 127 | 6.81k | delete p_; | 128 | 6.81k | p_ = 0; | 129 | | | 130 | 6.81k | } |
AutoPtr<dng_negative>::~AutoPtr() Line | Count | Source | 125 | 171k | { | 126 | | | 127 | 171k | delete p_; | 128 | 171k | p_ = 0; | 129 | | | 130 | 171k | } |
AutoPtr<dng_image>::~AutoPtr() Line | Count | Source | 125 | 345k | { | 126 | | | 127 | 345k | delete p_; | 128 | 345k | p_ = 0; | 129 | | | 130 | 345k | } |
AutoPtr<dng_preview>::~AutoPtr() Line | Count | Source | 125 | 328k | { | 126 | | | 127 | 328k | delete p_; | 128 | 328k | p_ = 0; | 129 | | | 130 | 328k | } |
AutoPtr<dng_memory_block>::~AutoPtr() Line | Count | Source | 125 | 2.93M | { | 126 | | | 127 | 2.93M | delete p_; | 128 | 2.93M | p_ = 0; | 129 | | | 130 | 2.93M | } |
AutoPtr<dng_metadata>::~AutoPtr() Line | Count | Source | 125 | 63.9k | { | 126 | | | 127 | 63.9k | delete p_; | 128 | 63.9k | p_ = 0; | 129 | | | 130 | 63.9k | } |
AutoPtr<dng_tiff_directory>::~AutoPtr() Line | Count | Source | 125 | 352k | { | 126 | | | 127 | 352k | delete p_; | 128 | 352k | p_ = 0; | 129 | | | 130 | 352k | } |
AutoPtr<dng_basic_tag_set>::~AutoPtr() Line | Count | Source | 125 | 352k | { | 126 | | | 127 | 352k | delete p_; | 128 | 352k | p_ = 0; | 129 | | | 130 | 352k | } |
AutoPtr<profile_tag_set>::~AutoPtr() Line | Count | Source | 125 | 16.0k | { | 126 | | | 127 | 16.0k | delete p_; | 128 | 16.0k | p_ = 0; | 129 | | | 130 | 16.0k | } |
AutoPtr<color_tag_set>::~AutoPtr() Line | Count | Source | 125 | 16.0k | { | 126 | | | 127 | 16.0k | delete p_; | 128 | 16.0k | p_ = 0; | 129 | | | 130 | 16.0k | } |
AutoPtr<dng_ifd>::~AutoPtr() Line | Count | Source | 125 | 4.20M | { | 126 | | | 127 | 4.20M | delete p_; | 128 | 4.20M | p_ = 0; | 129 | | | 130 | 4.20M | } |
AutoPtr<dng_exif>::~AutoPtr() Line | Count | Source | 125 | 258k | { | 126 | | | 127 | 258k | delete p_; | 128 | 258k | p_ = 0; | 129 | | | 130 | 258k | } |
AutoPtr<dng_shared>::~AutoPtr() Line | Count | Source | 125 | 131k | { | 126 | | | 127 | 131k | delete p_; | 128 | 131k | p_ = 0; | 129 | | | 130 | 131k | } |
Unexecuted instantiation: AutoPtr<dng_warp_params>::~AutoPtr() AutoPtr<dng_linearize_plane>::~AutoPtr() Line | Count | Source | 125 | 82.1k | { | 126 | | | 127 | 82.1k | delete p_; | 128 | 82.1k | p_ = 0; | 129 | | | 130 | 82.1k | } |
AutoPtr<dng_bilinear_interpolator>::~AutoPtr() Line | Count | Source | 125 | 331 | { | 126 | | | 127 | 331 | delete p_; | 128 | 331 | p_ = 0; | 129 | | | 130 | 331 | } |
AutoPtr<dng_linearization_info>::~AutoPtr() Line | Count | Source | 125 | 44.9k | { | 126 | | | 127 | 44.9k | delete p_; | 128 | 44.9k | p_ = 0; | 129 | | | 130 | 44.9k | } |
AutoPtr<dng_mosaic_info>::~AutoPtr() Line | Count | Source | 125 | 44.9k | { | 126 | | | 127 | 44.9k | delete p_; | 128 | 44.9k | p_ = 0; | 129 | | | 130 | 44.9k | } |
AutoPtr<dng_jpeg_image>::~AutoPtr() Line | Count | Source | 125 | 82.6k | { | 126 | | | 127 | 82.6k | delete p_; | 128 | 82.6k | p_ = 0; | 129 | | | 130 | 82.6k | } |
AutoPtr<dng_camera_profile>::~AutoPtr() Line | Count | Source | 125 | 148k | { | 126 | | | 127 | 148k | delete p_; | 128 | 148k | p_ = 0; | 129 | | | 130 | 148k | } |
AutoPtr<dng_opcode>::~AutoPtr() Line | Count | Source | 125 | 50.5k | { | 126 | | | 127 | 50.5k | delete p_; | 128 | 50.5k | p_ = 0; | 129 | | | 130 | 50.5k | } |
AutoPtr<dng_hue_sat_map>::~AutoPtr() Line | Count | Source | 125 | 13.3k | { | 126 | | | 127 | 13.3k | delete p_; | 128 | 13.3k | p_ = 0; | 129 | | | 130 | 13.3k | } |
AutoPtr<dng_1d_table>::~AutoPtr() Line | Count | Source | 125 | 26.6k | { | 126 | | | 127 | 26.6k | delete p_; | 128 | 26.6k | p_ = 0; | 129 | | | 130 | 26.6k | } |
AutoPtr<dng_color_spec>::~AutoPtr() Line | Count | Source | 125 | 1.68k | { | 126 | | | 127 | 1.68k | delete p_; | 128 | 1.68k | p_ = 0; | 129 | | | 130 | 1.68k | } |
AutoPtr<dng_simple_image>::~AutoPtr() Line | Count | Source | 125 | 14.0k | { | 126 | | | 127 | 14.0k | delete p_; | 128 | 14.0k | p_ = 0; | 129 | | | 130 | 14.0k | } |
AutoPtr<dng_bad_pixel_list>::~AutoPtr() Line | Count | Source | 125 | 742 | { | 126 | | | 127 | 742 | delete p_; | 128 | 742 | p_ = 0; | 129 | | | 130 | 742 | } |
AutoPtr<dng_gain_map>::~AutoPtr() Line | Count | Source | 125 | 1.20k | { | 126 | | | 127 | 1.20k | delete p_; | 128 | 1.20k | p_ = 0; | 129 | | | 130 | 1.20k | } |
|
131 | | |
132 | | /*****************************************************************************/ |
133 | | |
134 | | template<class T> |
135 | | T *AutoPtr<T>::Release () |
136 | 314k | { |
137 | 314k | T *result = p_; |
138 | 314k | p_ = 0; |
139 | 314k | return result; |
140 | 314k | } AutoPtr<dng_image>::Release() Line | Count | Source | 136 | 33.4k | { | 137 | 33.4k | T *result = p_; | 138 | 33.4k | p_ = 0; | 139 | 33.4k | return result; | 140 | 33.4k | } |
AutoPtr<dng_memory_block>::Release() Line | Count | Source | 136 | 67.3k | { | 137 | 67.3k | T *result = p_; | 138 | 67.3k | p_ = 0; | 139 | 67.3k | return result; | 140 | 67.3k | } |
Unexecuted instantiation: AutoPtr<dng_warp_params>::Release() AutoPtr<dng_negative>::Release() Line | Count | Source | 136 | 44.9k | { | 137 | 44.9k | T *result = p_; | 138 | 44.9k | p_ = 0; | 139 | 44.9k | return result; | 140 | 44.9k | } |
AutoPtr<dng_camera_profile>::Release() Line | Count | Source | 136 | 62.6k | { | 137 | 62.6k | T *result = p_; | 138 | 62.6k | p_ = 0; | 139 | 62.6k | return result; | 140 | 62.6k | } |
AutoPtr<dng_exif>::Release() Line | Count | Source | 136 | 33.9k | { | 137 | 33.9k | T *result = p_; | 138 | 33.9k | p_ = 0; | 139 | 33.9k | return result; | 140 | 33.9k | } |
AutoPtr<dng_jpeg_image>::Release() Line | Count | Source | 136 | 4.60k | { | 137 | 4.60k | T *result = p_; | 138 | 4.60k | p_ = 0; | 139 | 4.60k | return result; | 140 | 4.60k | } |
AutoPtr<dng_opcode>::Release() Line | Count | Source | 136 | 50.5k | { | 137 | 50.5k | T *result = p_; | 138 | 50.5k | p_ = 0; | 139 | 50.5k | return result; | 140 | 50.5k | } |
AutoPtr<dng_preview>::Release() Line | Count | Source | 136 | 3.42k | { | 137 | 3.42k | T *result = p_; | 138 | 3.42k | p_ = 0; | 139 | 3.42k | return result; | 140 | 3.42k | } |
AutoPtr<dng_simple_image>::Release() Line | Count | Source | 136 | 14.0k | { | 137 | 14.0k | T *result = p_; | 138 | 14.0k | p_ = 0; | 139 | 14.0k | return result; | 140 | 14.0k | } |
Unexecuted instantiation: AutoPtr<dng_bad_pixel_list>::Release() AutoPtr<dng_gain_map>::Release() Line | Count | Source | 136 | 15 | { | 137 | 15 | T *result = p_; | 138 | 15 | p_ = 0; | 139 | 15 | return result; | 140 | 15 | } |
Unexecuted instantiation: AutoPtr<dng_hue_sat_map>::Release() |
141 | | |
142 | | /*****************************************************************************/ |
143 | | |
144 | | template<class T> |
145 | | void AutoPtr<T>::Reset (T *p) |
146 | 1.35M | { |
147 | | |
148 | 1.35M | if (p_ != p) |
149 | 1.35M | { |
150 | 1.35M | if (p_ != 0) |
151 | 38.0k | delete p_; |
152 | 1.35M | p_ = p; |
153 | 1.35M | } |
154 | | |
155 | 1.35M | } AutoPtr<dng_negative>::Reset(dng_negative*) Line | Count | Source | 146 | 40.0k | { | 147 | | | 148 | 40.0k | if (p_ != p) | 149 | 40.0k | { | 150 | 40.0k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 40.0k | p_ = p; | 153 | 40.0k | } | 154 | | | 155 | 40.0k | } |
AutoPtr<dng_image>::Reset(dng_image*) Line | Count | Source | 146 | 106k | { | 147 | | | 148 | 106k | if (p_ != p) | 149 | 106k | { | 150 | 106k | if (p_ != 0) | 151 | 4.10k | delete p_; | 152 | 106k | p_ = p; | 153 | 106k | } | 154 | | | 155 | 106k | } |
AutoPtr<dng_memory_block>::Reset(dng_memory_block*) Line | Count | Source | 146 | 387k | { | 147 | | | 148 | 387k | if (p_ != p) | 149 | 387k | { | 150 | 387k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 387k | p_ = p; | 153 | 387k | } | 154 | | | 155 | 387k | } |
AutoPtr<dng_metadata>::Reset(dng_metadata*) Line | Count | Source | 146 | 2.65k | { | 147 | | | 148 | 2.65k | if (p_ != p) | 149 | 2.65k | { | 150 | 2.65k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 2.65k | p_ = p; | 153 | 2.65k | } | 154 | | | 155 | 2.65k | } |
AutoPtr<dng_tiff_directory>::Reset(dng_tiff_directory*) Line | Count | Source | 146 | 3.39k | { | 147 | | | 148 | 3.39k | if (p_ != p) | 149 | 3.39k | { | 150 | 3.39k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 3.39k | p_ = p; | 153 | 3.39k | } | 154 | | | 155 | 3.39k | } |
AutoPtr<dng_basic_tag_set>::Reset(dng_basic_tag_set*) Line | Count | Source | 146 | 3.39k | { | 147 | | | 148 | 3.39k | if (p_ != p) | 149 | 3.39k | { | 150 | 3.39k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 3.39k | p_ = p; | 153 | 3.39k | } | 154 | | | 155 | 3.39k | } |
AutoPtr<profile_tag_set>::Reset(profile_tag_set*) Line | Count | Source | 146 | 12.8k | { | 147 | | | 148 | 12.8k | if (p_ != p) | 149 | 12.8k | { | 150 | 12.8k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 12.8k | p_ = p; | 153 | 12.8k | } | 154 | | | 155 | 12.8k | } |
AutoPtr<color_tag_set>::Reset(color_tag_set*) Line | Count | Source | 146 | 12.8k | { | 147 | | | 148 | 12.8k | if (p_ != p) | 149 | 12.8k | { | 150 | 12.8k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 12.8k | p_ = p; | 153 | 12.8k | } | 154 | | | 155 | 12.8k | } |
AutoPtr<dng_ifd>::Reset(dng_ifd*) Line | Count | Source | 146 | 384k | { | 147 | | | 148 | 384k | if (p_ != p) | 149 | 384k | { | 150 | 384k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 384k | p_ = p; | 153 | 384k | } | 154 | | | 155 | 384k | } |
AutoPtr<dng_exif>::Reset(dng_exif*) Line | Count | Source | 146 | 184k | { | 147 | | | 148 | 184k | if (p_ != p) | 149 | 184k | { | 150 | 184k | if (p_ != 0) | 151 | 33.9k | delete p_; | 152 | 184k | p_ = p; | 153 | 184k | } | 154 | | | 155 | 184k | } |
AutoPtr<dng_shared>::Reset(dng_shared*) Line | Count | Source | 146 | 129k | { | 147 | | | 148 | 129k | if (p_ != p) | 149 | 129k | { | 150 | 129k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 129k | p_ = p; | 153 | 129k | } | 154 | | | 155 | 129k | } |
AutoPtr<dng_linearize_plane>::Reset(dng_linearize_plane*) Line | Count | Source | 146 | 24.7k | { | 147 | | | 148 | 24.7k | if (p_ != p) | 149 | 24.7k | { | 150 | 24.7k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 24.7k | p_ = p; | 153 | 24.7k | } | 154 | | | 155 | 24.7k | } |
AutoPtr<dng_jpeg_image>::Reset(dng_jpeg_image*) Line | Count | Source | 146 | 4.99k | { | 147 | | | 148 | 4.99k | if (p_ != p) | 149 | 4.99k | { | 150 | 4.99k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 4.99k | p_ = p; | 153 | 4.99k | } | 154 | | | 155 | 4.99k | } |
AutoPtr<dng_linearization_info>::Reset(dng_linearization_info*) Line | Count | Source | 146 | 40.7k | { | 147 | | | 148 | 40.7k | if (p_ != p) | 149 | 40.7k | { | 150 | 40.7k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 40.7k | p_ = p; | 153 | 40.7k | } | 154 | | | 155 | 40.7k | } |
AutoPtr<dng_mosaic_info>::Reset(dng_mosaic_info*) Line | Count | Source | 146 | 14.7k | { | 147 | | | 148 | 14.7k | if (p_ != p) | 149 | 14.7k | { | 150 | 14.7k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 14.7k | p_ = p; | 153 | 14.7k | } | 154 | | | 155 | 14.7k | } |
AutoPtr<dng_preview>::Reset(dng_preview*) Line | Count | Source | 146 | 3.42k | { | 147 | | | 148 | 3.42k | if (p_ != p) | 149 | 3.42k | { | 150 | 3.42k | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 3.42k | p_ = p; | 153 | 3.42k | } | 154 | | | 155 | 3.42k | } |
AutoPtr<dng_hue_sat_map>::Reset(dng_hue_sat_map*) Line | Count | Source | 146 | 1.67k | { | 147 | | | 148 | 1.67k | if (p_ != p) | 149 | 0 | { | 150 | 0 | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 0 | p_ = p; | 153 | 0 | } | 154 | | | 155 | 1.67k | } |
Unexecuted instantiation: AutoPtr<dng_spline_solver>::Reset(dng_spline_solver*) AutoPtr<dng_bad_pixel_list>::Reset(dng_bad_pixel_list*) Line | Count | Source | 146 | 588 | { | 147 | | | 148 | 588 | if (p_ != p) | 149 | 588 | { | 150 | 588 | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 588 | p_ = p; | 153 | 588 | } | 154 | | | 155 | 588 | } |
Unexecuted instantiation: AutoPtr<dng_1d_table>::Reset(dng_1d_table*) AutoPtr<dng_gain_map>::Reset(dng_gain_map*) Line | Count | Source | 146 | 15 | { | 147 | | | 148 | 15 | if (p_ != p) | 149 | 15 | { | 150 | 15 | if (p_ != 0) | 151 | 0 | delete p_; | 152 | 15 | p_ = p; | 153 | 15 | } | 154 | | | 155 | 15 | } |
|
156 | | |
157 | | /*****************************************************************************/ |
158 | | |
159 | | template<class T> |
160 | | void AutoPtr<T>::Reset () |
161 | 130k | { |
162 | | |
163 | 130k | if (p_ != 0) |
164 | 72.7k | { |
165 | 72.7k | delete p_; |
166 | 72.7k | p_ = 0; |
167 | 72.7k | } |
168 | | |
169 | 130k | } AutoPtr<dng_memory_block>::Reset() Line | Count | Source | 161 | 26.2k | { | 162 | | | 163 | 26.2k | if (p_ != 0) | 164 | 13.6k | { | 165 | 13.6k | delete p_; | 166 | 13.6k | p_ = 0; | 167 | 13.6k | } | 168 | | | 169 | 26.2k | } |
AutoPtr<dng_linearization_info>::Reset() Line | Count | Source | 161 | 20.5k | { | 162 | | | 163 | 20.5k | if (p_ != 0) | 164 | 19.7k | { | 165 | 19.7k | delete p_; | 166 | 19.7k | p_ = 0; | 167 | 19.7k | } | 168 | | | 169 | 20.5k | } |
AutoPtr<dng_mosaic_info>::Reset() Line | Count | Source | 161 | 17.8k | { | 162 | | | 163 | 17.8k | if (p_ != 0) | 164 | 12.2k | { | 165 | 12.2k | delete p_; | 166 | 12.2k | p_ = 0; | 167 | 12.2k | } | 168 | | | 169 | 17.8k | } |
AutoPtr<dng_jpeg_image>::Reset() Line | Count | Source | 161 | 20.8k | { | 162 | | | 163 | 20.8k | if (p_ != 0) | 164 | 140 | { | 165 | 140 | delete p_; | 166 | 140 | p_ = 0; | 167 | 140 | } | 168 | | | 169 | 20.8k | } |
AutoPtr<dng_image>::Reset() Line | Count | Source | 161 | 44.7k | { | 162 | | | 163 | 44.7k | if (p_ != 0) | 164 | 26.9k | { | 165 | 26.9k | delete p_; | 166 | 26.9k | p_ = 0; | 167 | 26.9k | } | 168 | | | 169 | 44.7k | } |
Unexecuted instantiation: AutoPtr<dng_1d_table>::Reset() |
170 | | |
171 | | /*****************************************************************************/ |
172 | | |
173 | | template<class T> |
174 | | void AutoPtr<T>::Alloc () |
175 | | { |
176 | | this->Reset (new T); |
177 | | } |
178 | | |
179 | | /*****************************************************************************/ |
180 | | |
181 | | /// \brief A class that provides a variable-length array that automatically |
182 | | /// deletes the underlying memory on scope exit. |
183 | | /// |
184 | | /// T is not required to be movable. The class is implemented using |
185 | | /// dng_std_vector but purposely does not use any member functions that require |
186 | | /// T to be movable. |
187 | | |
188 | | template<typename T> |
189 | | class AutoArray |
190 | | { |
191 | | |
192 | | public: |
193 | | /// Construct an AutoArray that refers to a null pointer. |
194 | | |
195 | 48.4k | AutoArray () { } AutoArray<dng_fingerprint>::AutoArray() Line | Count | Source | 195 | 43.7k | AutoArray () { } |
AutoArray<AutoPtr<dng_memory_block> >::AutoArray() Line | Count | Source | 195 | 4.63k | AutoArray () { } |
|
196 | | |
197 | | /// Construct an AutoArray containing 'count' elements, which are |
198 | | /// default-constructed. If an out-of-memory condition occurs, a |
199 | | /// dng_exception with error code dng_error_memory is thrown. |
200 | | |
201 | | explicit AutoArray (size_t count) |
202 | 4.24k | : vector_(new dng_std_vector<T>(count)) |
203 | 4.24k | { |
204 | 4.24k | } |
205 | | |
206 | | /// Changes the size of the AutoArray to 'count' elements. The new |
207 | | /// elements are default-constructed. The previously existing elements |
208 | | /// of the array are destroyed. If an out-of-memory condition occurs, a |
209 | | /// dng_exception with error code dng_error_memory is thrown. |
210 | | |
211 | | void Reset (size_t count) |
212 | 16.8k | { |
213 | 16.8k | vector_.reset(new dng_std_vector<T>(count)); |
214 | 16.8k | } AutoArray<dng_fingerprint>::Reset(unsigned long) Line | Count | Source | 212 | 12.2k | { | 213 | 12.2k | vector_.reset(new dng_std_vector<T>(count)); | 214 | 12.2k | } |
AutoArray<AutoPtr<dng_memory_block> >::Reset(unsigned long) Line | Count | Source | 212 | 4.62k | { | 213 | 4.62k | vector_.reset(new dng_std_vector<T>(count)); | 214 | 4.62k | } |
|
215 | | |
216 | | /// Allows indexing into the AutoArray. The index 'i' must be |
217 | | /// non-negative and smaller than size of the array (the value that was |
218 | | /// passed to the constructor or to Reset()). |
219 | | |
220 | | T &operator[] (ptrdiff_t i) |
221 | 491k | { |
222 | 491k | return (*vector_) [i]; |
223 | 491k | } AutoArray<dng_fingerprint>::operator[](long) Line | Count | Source | 221 | 480k | { | 222 | 480k | return (*vector_) [i]; | 223 | 480k | } |
AutoArray<AutoPtr<dng_memory_block> >::operator[](long) Line | Count | Source | 221 | 11.0k | { | 222 | 11.0k | return (*vector_) [i]; | 223 | 11.0k | } |
|
224 | | const T &operator[] (ptrdiff_t i) const |
225 | 44.0k | { |
226 | 44.0k | return (*vector_) [i]; |
227 | 44.0k | } |
228 | | |
229 | | /// Return a pointer to the beginning of the array. |
230 | | |
231 | | T *Get () |
232 | 4.24k | { |
233 | 4.24k | if (vector_) |
234 | 4.24k | return vector_->data(); |
235 | 0 | else |
236 | 0 | return nullptr; |
237 | 4.24k | } |
238 | | const T *Get () const |
239 | | { |
240 | | if (vector_) |
241 | | return vector_->data(); |
242 | | else |
243 | | return nullptr; |
244 | | } |
245 | | |
246 | | private: |
247 | | |
248 | | // Hidden copy constructor and assignment operator. |
249 | | |
250 | | AutoArray (const AutoArray &); |
251 | | |
252 | | const AutoArray & operator= (const AutoArray &); |
253 | | |
254 | | private: |
255 | | |
256 | | std::unique_ptr<dng_std_vector<T> > vector_; |
257 | | |
258 | | }; |
259 | | |
260 | | /*****************************************************************************/ |
261 | | |
262 | | #endif |
263 | | |
264 | | /*****************************************************************************/ |