зеркало из https://github.com/mozilla/moz-skia.git
Fixed cross compilation with mingw.
Tested in Mozilla source tree. I tried to use skia build system, but it's up to the task for cross compilation. SkHRESULT.cpp - Use proper file name (that matters on case sensitive OSes) SkAtomics_win.h - Don't use pragma intrinsic on GCC (this causes massive warnings) SkOSFile_win.cpp - This one is tricky. GCC doesn't allow (void*) casts in template argument constants and INVALID_HANDLE_VALUE looks like this: ((HANDLE)(LONG_PTR)-1) where HANDLE is typedefed to void*. Changed the code to use LONG_PTR as template argument and cast it when needed. BUG=skia: R=bungeman@google.com, reed@google.com Author: cjacek@gmail.com Review URL: https://codereview.chromium.org/198643004 git-svn-id: http://skia.googlecode.com/svn/trunk@13862 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
Родитель
bdc772ebbe
Коммит
8e13a159f3
1
AUTHORS
1
AUTHORS
|
@ -16,6 +16,7 @@ ARM <*@arm.com>
|
|||
George Wright <george@mozilla.com>
|
||||
Google Inc. <*@google.com>
|
||||
Intel <*@intel.com>
|
||||
Jacek Caban <cjacek@gmail.com>
|
||||
NVIDIA <*@nvidia.com>
|
||||
Samsung <*@samsung.com>
|
||||
The Chromium Authors <*@chromium.org>
|
||||
|
|
|
@ -374,7 +374,7 @@
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef SK_ATOMICS_PLATFORM_H
|
||||
# if defined(SK_BUILD_FOR_WIN)
|
||||
# if defined(_MSC_VER)
|
||||
# define SK_ATOMICS_PLATFORM_H "../../src/ports/SkAtomics_win.h"
|
||||
# elif defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
|
||||
# define SK_ATOMICS_PLATFORM_H "../../src/ports/SkAtomics_android.h"
|
||||
|
|
|
@ -50,18 +50,16 @@ bool sk_fidentical(SkFILE* a, SkFILE* b) {
|
|||
&& aID.fVolume == bID.fVolume;
|
||||
}
|
||||
|
||||
template <typename HandleType, HandleType InvalidValue, BOOL (WINAPI * Close)(HandleType)>
|
||||
class SkAutoTHandle : SkNoncopyable {
|
||||
class SkAutoNullKernelHandle : SkNoncopyable {
|
||||
public:
|
||||
SkAutoTHandle(HandleType handle) : fHandle(handle) { }
|
||||
~SkAutoTHandle() { Close(fHandle); }
|
||||
operator HandleType() { return fHandle; }
|
||||
bool isValid() { return InvalidValue != fHandle; }
|
||||
SkAutoNullKernelHandle(const HANDLE handle) : fHandle(handle) { }
|
||||
~SkAutoNullKernelHandle() { CloseHandle(fHandle); }
|
||||
operator HANDLE() const { return fHandle; }
|
||||
bool isValid() const { return NULL != fHandle; }
|
||||
private:
|
||||
HandleType fHandle;
|
||||
HANDLE fHandle;
|
||||
};
|
||||
typedef SkAutoTHandle<HANDLE, INVALID_HANDLE_VALUE, CloseHandle> SkAutoWinFile;
|
||||
typedef SkAutoTHandle<HANDLE, NULL, CloseHandle> SkAutoWinMMap;
|
||||
typedef SkAutoNullKernelHandle SkAutoWinMMap;
|
||||
|
||||
void sk_fmunmap(const void* addr, size_t) {
|
||||
UnmapViewOfFile(addr);
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#include "SkTypes.h"
|
||||
|
||||
#include "SKHRESULT.h"
|
||||
#include "SkHRESULT.h"
|
||||
|
||||
void SkTraceHR(const char* file, unsigned long line,
|
||||
HRESULT hr, const char* msg) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче