Show
Ignore:
Timestamp:
09/23/08 11:18:48 (6 years ago)
Author:
schima
Message:

manage配列 -> native配列への変換の際、pin_ptrを用いるよう変更。

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/cpluspluscli/OpenCvSharp/trunk/OpenCvSharp/CvHistogram.cpp

    r17367 r19756  
    2525        { 
    2626                CHECK_NULL(dims); 
    27                 int* sizes_ptr = ArrayConverter::ToNativeArray<Int32, int>(dims); 
     27                pin_ptr<int> sizes_ptr = &dims[0]; 
    2828                this->ptr = ::cvCreateHist(dims->Length, sizes_ptr, (int)type); 
    2929                this->isDisposed = false; 
    3030                this->type = type; 
    31                 delete sizes_ptr; 
    3231        } 
    3332        /// <summary> 
     
    4140        { 
    4241                CHECK_NULL(dims); 
    43                 int* sizes_ptr = ArrayConverter::ToNativeArray<Int32, int>(dims); 
     42                pin_ptr<int> sizes_ptr = &dims[0]; 
    4443                this->ptr = ::cvCreateHist(dims->Length, sizes_ptr, (int)type, NULL); 
    4544                if(ranges != nullptr){ 
     
    4847                this->isDisposed = false; 
    4948                this->type = type; 
    50                 delete sizes_ptr; 
    5149        } 
    5250        /// <summary> 
     
    6664        { 
    6765                CHECK_NULL(dims); 
    68                 int* sizes_ptr = ArrayConverter::ToNativeArray<Int32, int>(dims); 
     66                pin_ptr<int> sizes_ptr = &dims[0]; 
    6967                this->ptr = ::cvCreateHist(dims->Length, sizes_ptr, (int)type, NULL, uniform?1:0); 
    7068                if(ranges != nullptr){ 
     
    7371                this->isDisposed = false; 
    7472                this->type = type; 
    75                 delete sizes_ptr; 
    7673        } 
    7774        /// <summary> 
     
    302299        Single* CvHistogram::GetValueND( ... array<Int32>^ idx ) 
    303300        { 
    304                 int* idx_ptr = ArrayConverter::ToNativeArray<Int32, int>(idx); 
    305                 Single* result = (float*)::cvPtrND(ptr->bins, idx_ptr); 
    306                 delete idx_ptr; 
    307                 return result; 
     301                pin_ptr<int> idx_ptr = &idx[0]; 
     302                return (Single*)::cvPtrND(ptr->bins, idx_ptr); 
    308303        } 
    309304        #pragma endregion 
     
    385380        Double CvHistogram::QueryValueND( ... array<Int32>^ idx ) 
    386381        { 
    387                 int* idx_ptr = ArrayConverter::ToNativeArray<Int32, int>(idx); 
    388                 Double result = ::cvGetRealND(ptr->bins, idx_ptr); 
    389                 delete idx_ptr; 
    390                 return result; 
     382                pin_ptr<int> idx_ptr = &idx[0]; 
     383                return ::cvGetRealND(ptr->bins, idx_ptr); 
    391384        } 
    392385        #pragma endregion