mirror of
https://github.com/mpv-player/mpv
synced 2025-01-01 12:22:22 +00:00
Allocate executable memory with VirtualAlloc() in Windows.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29006 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
2826ad5e40
commit
bf1cf8da02
@ -68,6 +68,10 @@ untested special converters
|
||||
#define MAP_ANONYMOUS MAP_ANON
|
||||
#endif
|
||||
#endif
|
||||
#if HAVE_VIRTUALALLOC
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#endif
|
||||
#include "swscale.h"
|
||||
#include "swscale_internal.h"
|
||||
#include "rgb2rgb.h"
|
||||
@ -2566,6 +2570,9 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d
|
||||
#ifdef MAP_ANONYMOUS
|
||||
c->funnyYCode = mmap(NULL, MAX_FUNNY_CODE_SIZE, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
|
||||
c->funnyUVCode = mmap(NULL, MAX_FUNNY_CODE_SIZE, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
|
||||
#elif HAVE_VIRTUALALLOC
|
||||
c->funnyYCode = VirtualAlloc(NULL, MAX_FUNNY_CODE_SIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
|
||||
c->funnyUVCode = VirtualAlloc(NULL, MAX_FUNNY_CODE_SIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
|
||||
#else
|
||||
c->funnyYCode = av_malloc(MAX_FUNNY_CODE_SIZE);
|
||||
c->funnyUVCode = av_malloc(MAX_FUNNY_CODE_SIZE);
|
||||
@ -3214,6 +3221,9 @@ void sws_freeContext(SwsContext *c){
|
||||
#ifdef MAP_ANONYMOUS
|
||||
if (c->funnyYCode ) munmap(c->funnyYCode , MAX_FUNNY_CODE_SIZE);
|
||||
if (c->funnyUVCode) munmap(c->funnyUVCode, MAX_FUNNY_CODE_SIZE);
|
||||
#elif HAVE_VIRTUALALLOC
|
||||
if (c->funnyYCode ) VirtualFree(c->funnyYCode , MAX_FUNNY_CODE_SIZE, MEM_RELEASE);
|
||||
if (c->funnyUVCode) VirtualFree(c->funnyUVCode, MAX_FUNNY_CODE_SIZE, MEM_RELEASE);
|
||||
#else
|
||||
av_free(c->funnyYCode );
|
||||
av_free(c->funnyUVCode);
|
||||
|
Loading…
Reference in New Issue
Block a user