зеркало из https://github.com/github/ruby.git
* win32/win32.c (wlink, rb_w32_getppid): use typedef instead of
repeating compilcated function prototypes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
3c575a15c2
Коммит
16cb5ce483
|
@ -1,3 +1,8 @@
|
||||||
|
Tue Nov 23 21:59:47 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* win32/win32.c (wlink, rb_w32_getppid): use typedef instead of
|
||||||
|
repeating compilcated function prototypes.
|
||||||
|
|
||||||
Tue Nov 23 18:54:03 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Tue Nov 23 18:54:03 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* vm.c (rb_thread_mark): should mark self in conrol
|
* vm.c (rb_thread_mark): should mark self in conrol
|
||||||
|
|
|
@ -3815,11 +3815,12 @@ kill(int pid, int sig)
|
||||||
static int
|
static int
|
||||||
wlink(const WCHAR *from, const WCHAR *to)
|
wlink(const WCHAR *from, const WCHAR *to)
|
||||||
{
|
{
|
||||||
static BOOL (WINAPI *pCreateHardLinkW)(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES) = NULL;
|
typedef BOOL (WINAPI link_func)(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES);
|
||||||
|
static link_func *pCreateHardLinkW = NULL;
|
||||||
static int myerrno = 0;
|
static int myerrno = 0;
|
||||||
|
|
||||||
if (!pCreateHardLinkW && !myerrno) {
|
if (!pCreateHardLinkW && !myerrno) {
|
||||||
pCreateHardLinkW = (BOOL (WINAPI *)(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES))get_proc_address("kernel32", "CreateHardLinkW", NULL);
|
pCreateHardLinkW = (link_func *)get_proc_address("kernel32", "CreateHardLinkW", NULL);
|
||||||
if (!pCreateHardLinkW)
|
if (!pCreateHardLinkW)
|
||||||
myerrno = ENOSYS;
|
myerrno = ENOSYS;
|
||||||
}
|
}
|
||||||
|
@ -4662,12 +4663,13 @@ rb_w32_getpid(void)
|
||||||
rb_pid_t
|
rb_pid_t
|
||||||
rb_w32_getppid(void)
|
rb_w32_getppid(void)
|
||||||
{
|
{
|
||||||
static long (WINAPI *pNtQueryInformationProcess)(HANDLE, int, void *, ULONG, ULONG *) = NULL;
|
typedef long (WINAPI query_func)(HANDLE, int, void *, ULONG, ULONG *);
|
||||||
|
static query_func *pNtQueryInformationProcess = NULL;
|
||||||
rb_pid_t ppid = 0;
|
rb_pid_t ppid = 0;
|
||||||
|
|
||||||
if (!IsWin95() && rb_w32_osver() >= 5) {
|
if (!IsWin95() && rb_w32_osver() >= 5) {
|
||||||
if (!pNtQueryInformationProcess)
|
if (!pNtQueryInformationProcess)
|
||||||
pNtQueryInformationProcess = (long (WINAPI *)(HANDLE, int, void *, ULONG, ULONG *))get_proc_address("ntdll.dll", "NtQueryInformationProcess", NULL);
|
pNtQueryInformationProcess = (query_func *)get_proc_address("ntdll.dll", "NtQueryInformationProcess", NULL);
|
||||||
if (pNtQueryInformationProcess) {
|
if (pNtQueryInformationProcess) {
|
||||||
struct {
|
struct {
|
||||||
long ExitStatus;
|
long ExitStatus;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче