X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fio-layer%2Fprocesses.c;h=98012283ad3fb96011d99675e380b7229de48dd2;hb=7db9ee7b47d44aa1a972c675c274c160cff2112e;hp=d29ea3c185cc4fd9bf9c24ec552492da97747d86;hpb=c9afd924fdbe70a69ab9960c379f280ecbb3a778;p=mono.git diff --git a/mono/io-layer/processes.c b/mono/io-layer/processes.c index d29ea3c185c..98012283ad3 100644 --- a/mono/io-layer/processes.c +++ b/mono/io-layer/processes.c @@ -76,6 +76,7 @@ #include #include #include +#include /* The process' environment strings */ #if defined(__APPLE__) && !defined (__arm__) @@ -329,10 +330,7 @@ gboolean ShellExecuteEx (WapiShellExecuteInfo *sei) return FALSE; #ifdef PLATFORM_MACOSX - if (is_macos_10_5_or_higher ()) - handler = g_strdup ("/usr/bin/open -W"); - else - handler = g_strdup ("/usr/bin/open"); + handler = g_strdup ("/usr/bin/open"); #else /* * On Linux, try: xdg-open, the FreeDesktop standard way of doing it, @@ -1386,8 +1384,10 @@ gboolean EnumProcesses (guint32 *pids, guint32 len, guint32 *needed) if (err == 0) done = TRUE; - else + else { free (result); + result = NULL; + } } } while (err == 0 && !done); @@ -1710,14 +1710,13 @@ static GSList *load_modules (void) const struct section *sec; #endif const char *name; - intptr_t slide; - slide = _dyld_get_image_vmaddr_slide (i); name = _dyld_get_image_name (i); - hdr = _dyld_get_image_header (i); #if SIZEOF_VOID_P == 8 + hdr = (const struct mach_header_64*)_dyld_get_image_header (i); sec = getsectbynamefromheader_64 (hdr, SEG_DATA, SECT_DATA); #else + hdr = _dyld_get_image_header (i); sec = getsectbynamefromheader (hdr, SEG_DATA, SECT_DATA); #endif @@ -2118,9 +2117,11 @@ static gchar *get_process_name_from_proc (pid_t pid) size_t size; struct kinfo_proc2 *pi; #elif defined(PLATFORM_MACOSX) +#if !(!defined (__mono_ppc__) && defined (TARGET_OSX)) size_t size; struct kinfo_proc *pi; int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid }; +#endif #else FILE *fp; gchar *filename = NULL; @@ -2828,8 +2829,7 @@ process_close (gpointer handle, gpointer data) } #if HAVE_SIGACTION -static void -mono_sigchld_signal_handler (int _dummy, siginfo_t *info, void *context) +MONO_SIGNAL_HANDLER_FUNC (static, mono_sigchld_signal_handler, (int _dummy, siginfo_t *info, void *context)) { int status; int pid; @@ -2870,6 +2870,7 @@ mono_sigchld_signal_handler (int _dummy, siginfo_t *info, void *context) fprintf (stdout, "SIG CHILD handler: done looping."); #endif } + #endif static void process_add_sigchld_handler (void)