Bug#714923: fixed in opencv 2.4.5+dfsg-0exp1

Aurelien Jarno aurelien at aurel32.net
Sun Nov 10 00:31:36 UTC 2013


unarchive 714923
reopen 714923
found 714923 2.4.6.1+dfsg-1
thanks

On Tue, Aug 06, 2013 at 11:00:47PM +0000, Nobuhiro Iwamatsu wrote:
> Source: opencv
> Source-Version: 2.4.5+dfsg-0exp1
> 
> We believe that the bug you reported is fixed in the latest version of
> opencv, which is due to be installed in the Debian FTP archive.
> 
> A summary of the changes between this version and the previous one is
> attached.
> 
> Thank you for reporting the bug, which will now be closed.  If you
> have further comments please address them to 714923 at bugs.debian.org,
> and the maintainer will reopen the bug report if appropriate.
> 
> Debian distribution maintenance software
> pp.
> Nobuhiro Iwamatsu <iwamatsu at debian.org> (supplier of updated opencv package)
> 
> (This message was generated automatically at their request; if you
> believe that there is a problem with it please contact the archive
> administrators by mailing ftpmaster at ftp-master.debian.org)
> 
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> Format: 1.8
> Date: Fri, 12 Jul 2013 13:00:43 +0900
> Source: opencv
> Binary: opencv-doc libcv-dev libcv2.4 libhighgui-dev libhighgui2.4 libcvaux-dev libcvaux2.4 libopencv-dev opencv-data libopencv-core-dev libopencv-core2.4 libopencv-ml-dev libopencv-ml2.4 libopencv-imgproc-dev libopencv-imgproc2.4 libopencv-video-dev libopencv-video2.4 libopencv-objdetect-dev libopencv-objdetect2.4 libopencv-highgui-dev libopencv-highgui2.4 libopencv-calib3d-dev libopencv-calib3d2.4 libopencv-flann-dev libopencv-flann2.4 libopencv-features2d-dev libopencv-features2d2.4 libopencv-legacy-dev libopencv-legacy2.4 libopencv-contrib-dev libopencv-contrib2.4 libopencv-ts-dev libopencv-ts2.4 libopencv-photo-dev libopencv-photo2.4 libopencv-videostab-dev libopencv-videostab2.4 libopencv-stitching-dev libopencv-stitching2.4 libopencv-gpu-dev libopencv-gpu2.4 libopencv-superres-dev libopencv-superres2.4 python-opencv
> Architecture: source all amd64
> Version: 2.4.5+dfsg-0exp1
> Distribution: experimental
> Urgency: low
> Maintainer: Debian Science Team <debian-science-maintainers at lists.alioth.debian.org>
> Changed-By: Nobuhiro Iwamatsu <iwamatsu at debian.org>
> Description: 
>  libcv-dev  - Translation package for libcv-dev
>  libcv2.4   - computer vision library - libcv* translation package
>  libcvaux-dev - Translation package for libcvaux-dev
>  libcvaux2.4 - computer vision library - libcvaux translation package
>  libhighgui-dev - Translation package for libhighgui-dev
>  libhighgui2.4 - computer vision library - libhighgui translation package
>  libopencv-calib3d-dev - development files for libopencv-calib3d
>  libopencv-calib3d2.4 - computer vision Camera Calibration library
>  libopencv-contrib-dev - development files for libopencv-contrib
>  libopencv-contrib2.4 - computer vision contrib library
>  libopencv-core-dev - development files for libopencv-core
>  libopencv-core2.4 - computer vision core library
>  libopencv-dev - development files for opencv
>  libopencv-features2d-dev - development files for libopencv-features2d
>  libopencv-features2d2.4 - computer vision Feature Detection and Descriptor Extraction libra
>  libopencv-flann-dev - development files for libopencv-flann
>  libopencv-flann2.4 - computer vision Clustering and Search in Multi-Dimensional spaces
>  libopencv-gpu-dev - development files for libopencv-gpu2.4
>  libopencv-gpu2.4 - computer vision GPU library
>  libopencv-highgui-dev - development files for libopencv-highgui
>  libopencv-highgui2.4 - computer vision High-level GUI and Media I/O library
>  libopencv-imgproc-dev - development files for libopencv-imgproc
>  libopencv-imgproc2.4 - computer vision Image Processing library
>  libopencv-legacy-dev - development files for libopencv-legacy
>  libopencv-legacy2.4 - computer vision legacy library
>  libopencv-ml-dev - development files for libopencv-ml
>  libopencv-ml2.4 - computer vision Machine Learning library
>  libopencv-objdetect-dev - development files for libopencv-objdetect
>  libopencv-objdetect2.4 - computer vision Object Detection library
>  libopencv-photo-dev - development files for libopencv-photo2.4
>  libopencv-photo2.4 - computer vision computational photography library
>  libopencv-stitching-dev - development files for libopencv-stitching2.4
>  libopencv-stitching2.4 - computer vision image stitching library
>  libopencv-superres-dev - development files for libopencv-superres2.4
>  libopencv-superres2.4 - computer vision Super Resolution library
>  libopencv-ts-dev - development files for libopencv-ts2.4
>  libopencv-ts2.4 - computer vision ts library
>  libopencv-video-dev - development files for libopencv-video
>  libopencv-video2.4 - computer vision Video analysis library
>  libopencv-videostab-dev - development files for libopencv-videostab2.4
>  libopencv-videostab2.4 - computer vision video stabilization library
>  opencv-data - development data for opencv
>  opencv-doc - OpenCV documentation and examples
>  python-opencv - Python bindings for the computer vision library
> Closes: 701195 714923
> Changes: 
>  opencv (2.4.5+dfsg-0exp1) experimental; urgency=low
>  .
>    * New upstream release.
>    * Update debian/control.
>      - Add support all arch with TBB support. (Closes: 701195)
>      - Add opencv-data. Move haarcascades and lbpcascades's data to this.
>    * Fix FTBFS on sparc64. (Closes: #714923)
>      Add patches/change_type_from_int_to_Atomic_word
>    * Update debian/rules.
>      - Add python2 to dh of sequence.

Thanks for fixing this bug. However it seems this patch has been lost in
the new version (2.4.6.1+dfsg-1). Please find below an updated patch
fixing the issue. Would it be possible to include it in the next upload?
Thanks in advance.

--- opencv-2.4.6.1+dfsg.orig/modules/core/include/opencv2/core/core.hpp
+++ opencv-2.4.6.1+dfsg/modules/core/include/opencv2/core/core.hpp
@@ -1295,7 +1295,7 @@ public:
     operator const _Tp*() const;
 
     _Tp* obj; //< the object pointer.
-    int* refcount; //< the associated reference counter
+    _Atomic_word* refcount; //< the associated reference counter
 };
 
 
@@ -1463,9 +1463,9 @@ class CV_EXPORTS MatAllocator
 public:
     MatAllocator() {}
     virtual ~MatAllocator() {}
-    virtual void allocate(int dims, const int* sizes, int type, int*& refcount,
+    virtual void allocate(int dims, const int* sizes, int type, _Atomic_word*& refcount,
                           uchar*& datastart, uchar*& data, size_t* step) = 0;
-    virtual void deallocate(int* refcount, uchar* datastart, uchar* data) = 0;
+    virtual void deallocate(_Atomic_word* refcount, uchar* datastart, uchar* data) = 0;
 };
 
 /*!
@@ -1960,7 +1960,7 @@ public:
 
     //! pointer to the reference counter;
     // when matrix points to user-allocated data, the pointer is NULL
-    int* refcount;
+    _Atomic_word* refcount;
 
     //! helper fields used in locateROI and adjustROI
     uchar* datastart;
@@ -3379,7 +3379,7 @@ public:
     {
         Hdr(int _dims, const int* _sizes, int _type);
         void clear();
-        int refcount;
+        _Atomic_word refcount;
         int dims;
         int valueOffset;
         size_t nodeSize;
--- opencv-2.4.6.1+dfsg.orig/modules/core/include/opencv2/core/gpumat.hpp
+++ opencv-2.4.6.1+dfsg/modules/core/include/opencv2/core/gpumat.hpp
@@ -301,7 +301,7 @@ namespace cv { namespace gpu
 
         //! pointer to the reference counter;
         // when GpuMatrix points to user-allocated data, the pointer is NULL
-        int* refcount;
+        _Atomic_word* refcount;
 
         //! helper fields used in locateROI and adjustROI
         uchar* datastart;
--- opencv-2.4.6.1+dfsg.orig/modules/core/include/opencv2/core/operations.hpp
+++ opencv-2.4.6.1+dfsg/modules/core/include/opencv2/core/operations.hpp
@@ -2279,7 +2279,7 @@ public:
         Hdr() : data(0), datastart(0), refcount(0), size(0), capacity(0) {};
         _Tp* data;
         _Tp* datastart;
-        int* refcount;
+        _Atomic_word* refcount;
         size_t size;
         size_t capacity;
     };
@@ -2586,7 +2586,7 @@ template<typename _Tp> inline Ptr<_Tp>::
 {
     if(obj)
     {
-        refcount = (int*)fastMalloc(sizeof(*refcount));
+        refcount = (_Atomic_word*)fastMalloc(sizeof(*refcount));
         *refcount = 1;
     }
     else
@@ -2623,7 +2623,7 @@ template<typename _Tp> inline Ptr<_Tp>::
 
 template<typename _Tp> inline Ptr<_Tp>& Ptr<_Tp>::operator = (const Ptr<_Tp>& _ptr)
 {
-    int* _refcount = _ptr.refcount;
+    _Atomic_word* _refcount = _ptr.refcount;
     if( _refcount )
         CV_XADD(_refcount, 1);
     release();
--- opencv-2.4.6.1+dfsg.orig/modules/core/src/gpumat.cpp
+++ opencv-2.4.6.1+dfsg/modules/core/src/gpumat.cpp
@@ -1548,7 +1548,7 @@ void cv::gpu::GpuMat::create(int _rows,
         datastart = data = static_cast<uchar*>(devPtr);
         dataend = data + nettosize;
 
-        refcount = static_cast<int*>(fastMalloc(sizeof(*refcount)));
+        refcount = static_cast<_Atomic_word*>(fastMalloc(sizeof(*refcount)));
         *refcount = 1;
     }
 }
--- opencv-2.4.6.1+dfsg.orig/modules/core/src/matrix.cpp
+++ opencv-2.4.6.1+dfsg/modules/core/src/matrix.cpp
@@ -213,7 +213,7 @@ void Mat::create(int d, const int* _size
         {
             size_t totalsize = alignSize(step.p[0]*size.p[0], (int)sizeof(*refcount));
             data = datastart = (uchar*)fastMalloc(totalsize + (int)sizeof(*refcount));
-            refcount = (int*)(data + totalsize);
+            refcount = (_Atomic_word*)(data + totalsize);
             *refcount = 1;
         }
         else
--- opencv-2.4.6.1+dfsg.orig/modules/core/src/system.cpp
+++ opencv-2.4.6.1+dfsg/modules/core/src/system.cpp
@@ -851,7 +851,7 @@ struct Mutex::Impl
     void unlock() { pthread_spin_unlock(&sl); }
 
     pthread_spinlock_t sl;
-    int refcount;
+    _Atomic_word refcount;
 };
 
 #else
@@ -904,4 +904,4 @@ bool Mutex::trylock() { return impl->try
 
 }
 
-/* End of file. */
\ No newline at end of file
+/* End of file. */
--- opencv-2.4.6.1+dfsg.orig/modules/gpu/include/opencv2/gpu/gpu.hpp
+++ opencv-2.4.6.1+dfsg/modules/gpu/include/opencv2/gpu/gpu.hpp
@@ -125,7 +125,7 @@ public:
     size_t step;
 
     uchar* data;
-    int* refcount;
+    _Atomic_word* refcount;
 
     uchar* datastart;
     uchar* dataend;
--- opencv-2.4.6.1+dfsg.orig/modules/python/src2/cv2.cpp
+++ opencv-2.4.6.1+dfsg/modules/python/src2/cv2.cpp
@@ -150,14 +150,14 @@ static PyObject* failmsgp(const char *fm
 static size_t REFCOUNT_OFFSET = (size_t)&(((PyObject*)0)->ob_refcnt) +
     (0x12345678 != *(const size_t*)"\x78\x56\x34\x12\0\0\0\0\0")*sizeof(int);
 
-static inline PyObject* pyObjectFromRefcount(const int* refcount)
+static inline PyObject* pyObjectFromRefcount(const _Atomic_word* refcount)
 {
     return (PyObject*)((size_t)refcount - REFCOUNT_OFFSET);
 }
 
-static inline int* refcountFromPyObject(const PyObject* obj)
+static inline _Atomic_word* refcountFromPyObject(const PyObject* obj)
 {
-    return (int*)((size_t)obj + REFCOUNT_OFFSET);
+    return (_Atomic_word*)((size_t)obj + REFCOUNT_OFFSET);
 }
 
 class NumpyAllocator : public MatAllocator
@@ -166,7 +166,7 @@ public:
     NumpyAllocator() {}
     ~NumpyAllocator() {}
 
-    void allocate(int dims, const int* sizes, int type, int*& refcount,
+    void allocate(int dims, const int* sizes, int type, _Atomic_word*& refcount,
                   uchar*& datastart, uchar*& data, size_t* step)
     {
         PyEnsureGIL gil;
@@ -199,7 +199,7 @@ public:
         datastart = data = (uchar*)PyArray_DATA(o);
     }
 
-    void deallocate(int* refcount, uchar*, uchar*)
+    void deallocate(_Atomic_word* refcount, uchar*, uchar*)
     {
         PyEnsureGIL gil;
         if( !refcount )

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurelien at aurel32.net                 http://www.aurel32.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/debian-science-maintainers/attachments/20131110/a7ebff25/attachment.sig>


More information about the debian-science-maintainers mailing list