1 Index: opencv-0.9.7/cv/include/cvcompat.h
2 ===================================================================
3 --- opencv-0.9.7.orig/cv/include/cvcompat.h 2005-05-27 13:49:53.000000000 +0200
4 +++ opencv-0.9.7/cv/include/cvcompat.h 2006-06-12 13:38:01.000000000 +0200
6 CV_INLINE void cvFillImage( CvArr* mat, double color )
\r
8 CvPoint left_top = { 0, 0 }, right_bottom = { 0, 0 };
\r
9 + union { CvPoint p; CvSize s; } tmp;
\r
11 - cvGetRawData( mat, 0, 0, (CvSize*)&right_bottom );
\r
13 + tmp.p = right_bottom;
\r
15 + cvGetRawData( mat, 0, 0, &tmp.s );
\r
19 - cvRectangle( mat, left_top, right_bottom,
\r
20 + cvRectangle( mat, left_top, tmp.p,
\r
21 cvColorToScalar( color, cvGetElemType(mat)),
\r
25 vect1->y = pt[1].y - pt[0].y;
\r
26 vect2->x = pt[3].x - pt[0].x;
\r
27 vect2->y = pt[3].y - pt[0].y;
\r
29 - CV_UNREFERENCED( (left, bottom, right, top) );
\r
32 typedef int CvDisType;
\r
34 const float* A, const float* k,
\r
35 int CV_UNREFERENCED(interpolate) )
\r
38 + union { float *f; uchar *u; } data;
\r
40 - cvGetRawData( undistortion_map, (uchar**)&data, 0, &sz );
\r
41 + cvGetRawData( undistortion_map, &data.u, 0, &sz );
\r
42 assert( sz.width >= 8 );
\r
43 /* just save the intrinsic parameters to the map */
\r
44 - data[0] = A[0]; data[1] = A[4];
\r
45 - data[2] = A[2]; data[3] = A[5];
\r
46 - data[4] = k[0]; data[5] = k[1];
\r
47 - data[6] = k[2]; data[7] = k[3];
\r
48 + data.f[0] = A[0]; data.f[1] = A[4];
\r
49 + data.f[2] = A[2]; data.f[3] = A[5];
\r
50 + data.f[4] = k[0]; data.f[5] = k[1];
\r
51 + data.f[6] = k[2]; data.f[7] = k[3];
\r
54 CV_INLINE void cvUnDistort( const CvArr* src, CvArr* dst,
\r
55 const CvArr* undistortion_map,
\r
56 int CV_UNREFERENCED(interpolate) )
\r
59 + union { float *f; uchar *u; } data;
\r
60 float a[] = {0,0,0,0,0,0,0,0,1};
\r
62 - cvGetRawData( undistortion_map, (uchar**)&data, 0, &sz );
\r
63 + cvGetRawData( undistortion_map, &data.u, 0, &sz );
\r
64 assert( sz.width >= 8 );
\r
65 - a[0] = data[0]; a[4] = data[1];
\r
66 - a[2] = data[2]; a[5] = data[3];
\r
67 - cvUnDistortOnce( src, dst, a, data + 4, 1 );
\r
68 + a[0] = data.f[0]; a[4] = data.f[1];
\r
69 + a[2] = data.f[2]; a[5] = data.f[3];
\r
70 + cvUnDistortOnce( src, dst, a, data.f + 4, 1 );
\r
75 int mask CV_DEFAULT(CV_GRAPH_ALL_ITEMS))
\r
77 CvGraphScanner* temp_scanner;
\r
81 cvError( CV_StsNullPtr, "cvStartScanGraph", "Null scanner pointer", "cvcompat.h", 0 );
\r
83 temp_scanner = cvCreateGraphScanner( graph, vtx, mask );
\r
84 *scanner = *temp_scanner;
\r
85 - cvFree( (void**)&temp_scanner );
\r
86 + tmp = (void *)temp_scanner;
\r
91 Index: opencv-0.9.7/cxcore/include/cxcore.h
92 ===================================================================
93 --- opencv-0.9.7.orig/cxcore/include/cxcore.h 2005-07-05 17:59:49.000000000 +0200
94 +++ opencv-0.9.7/cxcore/include/cxcore.h 2006-06-12 13:37:05.000000000 +0200
96 CvMat* mat = (CvMat*)arr; /* the first few fields of CvMat and CvMatND are the same */
\r
97 mat->data.ptr = NULL;
\r
98 if( mat->refcount != NULL && --*mat->refcount == 0 )
\r
99 - cvFree( (void**)&mat->refcount );
\r
101 + void *tmp = (void *)mat->refcount;
\r
104 mat->refcount = NULL;
\r
107 Index: opencv-0.9.7/cxcore/include/cxtypes.h
108 ===================================================================
109 --- opencv-0.9.7.orig/cxcore/include/cxtypes.h 2006-06-12 13:37:05.000000000 +0200
110 +++ opencv-0.9.7/cxcore/include/cxtypes.h 2006-06-12 13:37:05.000000000 +0200
112 int i = _mm_cvtsd_si32(t);
\r
113 return i - _mm_movemask_pd(_mm_cmplt_sd(t,_mm_cvtsi32_sd(t,i)));
\r
115 + union { int i; float f; } tmp;
\r
116 int temp = cvRound(value);
\r
117 - float diff = (float)(value - temp);
\r
118 - return temp - (*(int*)&diff < 0);
\r
119 + tmp.f = (float)(value - temp);
\r
120 + return temp - (tmp.i < 0);
\r
125 int i = _mm_cvtsd_si32(t);
\r
126 return i + _mm_movemask_pd(_mm_cmpgt_sd(t,_mm_cvtsi32_sd(t,i)));
\r
128 + union { int i; float f; } tmp;
\r
129 int temp = cvRound(value);
\r
130 - float diff = (float)(temp - value);
\r
131 - return temp + (*(int*)&diff < 0);
\r
132 + tmp.f = (float)(temp - value);
\r
133 + return temp + (tmp.i < 0);
\r
138 #elif defined __GNUC__
\r
139 return isnan(value);
\r
141 - unsigned lo = (unsigned)*(uint64*)&value;
\r
142 - unsigned hi = (unsigned)(*(uint64*)&value >> 32);
\r
143 + union { uint64 i; double d; } tmp;
\r
146 + lo = (unsigned)tmp.i;
\r
147 + hi = (unsigned)(tmp.i >> 32);
\r
148 return (hi & 0x7fffffff) + (lo != 0) > 0x7ff00000;
\r
152 #elif defined __GNUC__
\r
153 return isinf(value);
\r
155 - unsigned lo = (unsigned)*(uint64*)&value;
\r
156 - unsigned hi = (unsigned)(*(uint64*)&value >> 32);
\r
157 + union { uint64 i; double d; } tmp;
\r
160 + lo = (unsigned)tmp.i;
\r
161 + hi = (unsigned)(tmp.i >> 32);
\r
162 return (hi & 0x7fffffff) == 0x7ff00000 && lo == 0;
\r