File: 05-fix-aliasing-bug.patch

package info (click to toggle)
nvidia-texture-tools 2.0.8-1%2Bdfsg-10
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 2,304 kB
  • sloc: cpp: 22,495; ansic: 1,097; sh: 59; makefile: 12
file content (61 lines) | stat: -rw-r--r-- 1,610 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
DEP: 3
Subject: Fix aliasing bug
Last-Update: 2012-03-31
Origin: upstream, http://code.google.com/p/nvidia-texture-tools/source/detail?r=1167
Bug: http://code.google.com/p/nvidia-texture-tools/issues/detail?id=139

diff --git a/src/nvmath/Vector.h b/src/nvmath/Vector.h
index bffdfbe..f90bd57 100644
--- a/src/nvmath/Vector.h
+++ b/src/nvmath/Vector.h
@@ -68,7 +68,7 @@ public:
 	scalar y() const;
 	scalar z() const;
 
-	const Vector2 & xy() const;
+	Vector2 xy() const;
 
 	scalar component(uint idx) const;
 
@@ -111,8 +111,8 @@ public:
 	scalar z() const;
 	scalar w() const;
 	
-	const Vector2 & xy() const;
-	const Vector3 & xyz() const;
+	Vector2 xy() const;
+	Vector3 xyz() const;
 
 	scalar component(uint idx) const;
 
@@ -231,9 +231,9 @@ inline scalar Vector3::x() const { return m_x; }
 inline scalar Vector3::y() const { return m_y; }
 inline scalar Vector3::z() const { return m_z; }
 	
-inline const Vector2 & Vector3::xy() const
+inline Vector2 Vector3::xy() const
 {
-	return *(Vector2 *)this;
+	return Vector2(m_x, m_y);
 }
 
 inline scalar Vector3::component(uint idx) const
@@ -332,14 +332,14 @@ inline scalar Vector4::y() const { return m_y; }
 inline scalar Vector4::z() const { return m_z; }
 inline scalar Vector4::w() const { return m_w; }
 
-inline const Vector2 & Vector4::xy() const
+inline Vector2 Vector4::xy() const
 {
-	return *(Vector2 *)this;
+	return Vector2(m_x, m_y);
 }
 
-inline const Vector3 & Vector4::xyz() const
+inline Vector3 Vector4::xyz() const
 {
-	return *(Vector3 *)this;
+	return Vector3(m_x, m_y, m_z);
 }
 
 inline scalar Vector4::component(uint idx) const