diff --git a/modules/core/src/system.cpp b/modules/core/src/system.cpp index ef45b9b5b6..68aff531f1 100644 --- a/modules/core/src/system.cpp +++ b/modules/core/src/system.cpp @@ -423,27 +423,23 @@ string format( const char* fmt, ... ) string tempfile( const char* suffix ) { -#ifdef HAVE_WINRT - std::wstring temp_dir = L""; - const wchar_t* opencv_temp_dir = _wgetenv(L"OPENCV_TEMP_PATH"); - if (opencv_temp_dir) - temp_dir = std::wstring(opencv_temp_dir); -#else + string fname; +#ifndef HAVE_WINRT const char *temp_dir = getenv("OPENCV_TEMP_PATH"); #endif - string fname; #if defined WIN32 || defined _WIN32 #ifdef HAVE_WINRT RoInitialize(RO_INIT_MULTITHREADED); - std::wstring temp_dir2; - if (temp_dir.empty()) - temp_dir = GetTempPathWinRT(); + std::wstring temp_dir = L""; + const wchar_t* opencv_temp_dir = GetTempPathWinRT().c_str(); + if (opencv_temp_dir) + temp_dir = std::wstring(opencv_temp_dir); std::wstring temp_file; temp_file = GetTempFileNameWinRT(L"ocv"); if (temp_file.empty()) - return std::string(); + return string(); temp_file = temp_dir + std::wstring(L"\\") + temp_file; DeleteFileW(temp_file.c_str()); @@ -451,7 +447,7 @@ string tempfile( const char* suffix ) char aname[MAX_PATH]; size_t copied = wcstombs(aname, temp_file.c_str(), MAX_PATH); CV_Assert((copied != MAX_PATH) && (copied != (size_t)-1)); - fname = std::string(aname); + fname = string(aname); RoUninitialize(); #else char temp_dir2[MAX_PATH] = { 0 }; diff --git a/modules/objdetect/src/matching.cpp b/modules/objdetect/src/matching.cpp index 382f6312a9..484605d051 100644 --- a/modules/objdetect/src/matching.cpp +++ b/modules/objdetect/src/matching.cpp @@ -524,7 +524,9 @@ int addNullableBorder(CvLSVMFeatureMap *map, int bx, int by) float *new_map; sizeX = map->sizeX + 2 * bx; sizeY = map->sizeY + 2 * by; - new_map = (float *)malloc(sizeof(float) * sizeX * sizeY * map->numFeatures); + // fix for Windows Phone 8 ARM compiler + size_t size = sizeof(float) * sizeX * sizeY * map->numFeatures; + new_map = (float *)malloc(size); for (i = 0; i < sizeX * sizeY * map->numFeatures; i++) { new_map[i] = 0.0;