Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 903687e

Browse files
committed
Add check to VDeleter to handle self-assignment
1 parent 3c86c72 commit 903687e

29 files changed

Lines changed: 116 additions & 58 deletions

03_Drawing_a_triangle/00_Setup/00_Base_code.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,10 @@ public:
152152
}
153153
154154
void operator=(T rhs) {
155-
cleanup();
156-
object = rhs;
155+
if (rhs != object) {
156+
cleanup();
157+
object = rhs;
158+
}
157159
}
158160
159161
template<typename V>

code/base_code.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ class VDeleter {
4343
}
4444

4545
void operator=(T rhs) {
46-
cleanup();
47-
object = rhs;
46+
if (rhs != object) {
47+
cleanup();
48+
object = rhs;
49+
}
4850
}
4951

5052
template<typename V>

code/command_buffers.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@ class VDeleter {
7878
}
7979

8080
void operator=(T rhs) {
81-
cleanup();
82-
object = rhs;
81+
if (rhs != object) {
82+
cleanup();
83+
object = rhs;
84+
}
8385
}
8486

8587
template<typename V>

code/depth_buffering.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,10 @@ class VDeleter {
8888
}
8989

9090
void operator=(T rhs) {
91-
cleanup();
92-
object = rhs;
91+
if (rhs != object) {
92+
cleanup();
93+
object = rhs;
94+
}
9395
}
9496

9597
template<typename V>

code/descriptor_layout.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,10 @@ class VDeleter {
8484
}
8585

8686
void operator=(T rhs) {
87-
cleanup();
88-
object = rhs;
87+
if (rhs != object) {
88+
cleanup();
89+
object = rhs;
90+
}
8991
}
9092

9193
template<typename V>

code/descriptor_set.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,10 @@ class VDeleter {
8484
}
8585

8686
void operator=(T rhs) {
87-
cleanup();
88-
object = rhs;
87+
if (rhs != object) {
88+
cleanup();
89+
object = rhs;
90+
}
8991
}
9092

9193
template<typename V>

code/fixed_functions.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@ class VDeleter {
7878
}
7979

8080
void operator=(T rhs) {
81-
cleanup();
82-
object = rhs;
81+
if (rhs != object) {
82+
cleanup();
83+
object = rhs;
84+
}
8385
}
8486

8587
template<typename V>

code/framebuffers.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@ class VDeleter {
7878
}
7979

8080
void operator=(T rhs) {
81-
cleanup();
82-
object = rhs;
81+
if (rhs != object) {
82+
cleanup();
83+
object = rhs;
84+
}
8385
}
8486

8587
template<typename V>

code/graphics_pipeline.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@ class VDeleter {
7878
}
7979

8080
void operator=(T rhs) {
81-
cleanup();
82-
object = rhs;
81+
if (rhs != object) {
82+
cleanup();
83+
object = rhs;
84+
}
8385
}
8486

8587
template<typename V>

code/graphics_pipeline_complete.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,10 @@ class VDeleter {
7878
}
7979

8080
void operator=(T rhs) {
81-
cleanup();
82-
object = rhs;
81+
if (rhs != object) {
82+
cleanup();
83+
object = rhs;
84+
}
8385
}
8486

8587
template<typename V>

0 commit comments

Comments
 (0)