From owner-freebsd-gecko@FreeBSD.ORG Thu Sep 13 12:47:28 2012 Return-Path: Delivered-To: freebsd-gecko@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D85861065670 for ; Thu, 13 Sep 2012 12:47:28 +0000 (UTC) (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: from trillian.chruetertee.ch (trillian.chruetertee.ch [217.150.245.56]) by mx1.freebsd.org (Postfix) with ESMTP id 3FC148FC15 for ; Thu, 13 Sep 2012 12:47:28 +0000 (UTC) Received: from trillian.chruetertee.ch (trillian [217.150.245.56]) by trillian.chruetertee.ch (8.14.4/8.14.3) with ESMTP id q8DClRYi079745 for ; Thu, 13 Sep 2012 12:47:27 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Received: (from www@localhost) by trillian.chruetertee.ch (8.14.4/8.14.3/Submit) id q8DClMbK077674 for freebsd-gecko@freebsd.org; Thu, 13 Sep 2012 12:47:22 GMT (envelope-from svn-freebsd-gecko@chruetertee.ch) Date: Thu, 13 Sep 2012 12:47:22 GMT Message-Id: <201209131247.q8DClMbK077674@trillian.chruetertee.ch> X-Authentication-Warning: trillian.chruetertee.ch: www set sender to svn-freebsd-gecko@chruetertee.ch using -f From: svn-freebsd-gecko@chruetertee.ch To: freebsd-gecko@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [SVN-Commit] r1014 - in trunk: mail/thunderbird-esr/files mail/thunderbird/files www/firefox-esr/files www/firefox-nightly/files www/firefox/files www/libxul-esr/files www/libxul/files www/seamonkey/files X-BeenThere: freebsd-gecko@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: freebsd-gecko@freebsd.org List-Id: Gecko Rendering Engine issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Sep 2012 12:47:28 -0000 Author: jbeich Date: Thu Sep 13 12:47:21 2012 New Revision: 1014 Log: sync with bug 789693 Modified: trunk/mail/thunderbird-esr/files/patch-bug789693 trunk/mail/thunderbird/files/patch-bug789693 trunk/www/firefox-esr/files/patch-bug789693 trunk/www/firefox-nightly/files/patch-bug789693 trunk/www/firefox/files/patch-bug789693 trunk/www/libxul-esr/files/patch-bug789693 trunk/www/libxul/files/patch-bug789693 trunk/www/seamonkey/files/patch-bug789693 Modified: trunk/mail/thunderbird-esr/files/patch-bug789693 ============================================================================== --- trunk/mail/thunderbird-esr/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/mail/thunderbird-esr/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- mozilla/toolkit/components/startup/nsAppStartup.cpp +++ mozilla/toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,17 +50,40 @@ #include #endif @@ -19,7 +19,33 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + using namespace mozilla; +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +55,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +88,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/mail/thunderbird/files/patch-bug789693 ============================================================================== --- trunk/mail/thunderbird/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/mail/thunderbird/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- mozilla/toolkit/components/startup/nsAppStartup.cpp +++ mozilla/toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,18 +50,41 @@ #include #endif @@ -19,7 +19,34 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + #include "mozilla/StartupTimeline.h" + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + #define kPrefLastSuccess "toolkit.startup.last_success" +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +56,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +89,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/firefox-esr/files/patch-bug789693 ============================================================================== --- trunk/www/firefox-esr/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/firefox-esr/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,17 +50,40 @@ #include #endif @@ -19,7 +19,33 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + using namespace mozilla; +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +55,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +88,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/firefox-nightly/files/patch-bug789693 ============================================================================== --- trunk/www/firefox-nightly/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/firefox-nightly/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,18 +50,41 @@ #include #endif @@ -19,7 +19,34 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + #include "mozilla/StartupTimeline.h" + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + #define kPrefLastSuccess "toolkit.startup.last_success" +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +56,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +89,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/firefox/files/patch-bug789693 ============================================================================== --- trunk/www/firefox/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/firefox/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,18 +50,41 @@ #include #endif @@ -19,7 +19,34 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + #include "mozilla/StartupTimeline.h" + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + #define kPrefLastSuccess "toolkit.startup.last_success" +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +56,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +89,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/libxul-esr/files/patch-bug789693 ============================================================================== --- trunk/www/libxul-esr/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/libxul-esr/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,17 +50,40 @@ #include #endif @@ -19,7 +19,33 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + using namespace mozilla; +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +55,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +88,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/libxul/files/patch-bug789693 ============================================================================== --- trunk/www/libxul/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/libxul/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- toolkit/components/startup/nsAppStartup.cpp +++ toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,18 +50,41 @@ #include #endif @@ -19,7 +19,34 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + #include "mozilla/StartupTimeline.h" + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + #define kPrefLastSuccess "toolkit.startup.last_success" +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +56,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +89,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else Modified: trunk/www/seamonkey/files/patch-bug789693 ============================================================================== --- trunk/www/seamonkey/files/patch-bug789693 Thu Sep 13 12:47:10 2012 (r1013) +++ trunk/www/seamonkey/files/patch-bug789693 Thu Sep 13 12:47:21 2012 (r1014) @@ -1,6 +1,6 @@ --- mozilla/toolkit/components/startup/nsAppStartup.cpp +++ mozilla/toolkit/components/startup/nsAppStartup.cpp -@@ -50,13 +50,14 @@ +@@ -50,18 +50,41 @@ #include #endif @@ -19,7 +19,34 @@ #endif #include "mozilla/Telemetry.h" -@@ -836,41 +837,56 @@ CalculateProcessCreationTimestamp() + #include "mozilla/StartupTimeline.h" + ++#if defined(__NetBSD__) ++#undef KERN_PROC ++#define KERN_PROC KERN_PROC2 ++#define KINFO_PROC struct kinfo_proc2 ++#else ++#define KINFO_PROC struct kinfo_proc ++#endif ++ ++#if defined(XP_MACOSX) ++#define KP_START_SEC kp_proc.p_un.__p_starttime.tv_sec ++#define KP_START_USEC kp_proc.p_un.__p_starttime.tv_usec ++#elif defined(__DragonFly__) ++#define KP_START_SEC kp_start.tv_sec ++#define KP_START_USEC kp_start.tv_usec ++#elif defined(__FreeBSD__) ++#define KP_START_SEC ki_start.tv_sec ++#define KP_START_USEC ki_start.tv_usec ++#else ++#define KP_START_SEC p_ustart_sec ++#define KP_START_USEC p_ustart_usec ++#endif ++ + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); + + #define kPrefLastSuccess "toolkit.startup.last_success" +@@ -836,42 +859,30 @@ CalculateProcessCreationTimestamp() #endif return timestamp; } @@ -29,41 +56,29 @@ static PRTime CalculateProcessCreationTimestamp() { -+#if defined(__NetBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC2, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc2), 1 }; -+#elif defined(__OpenBSD__) -+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; -+#else - int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; -+#endif - size_t buffer_size; -+ +- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; +- size_t buffer_size; +- if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) +- return 0; ++ int mib[] = { ++ CTL_KERN, ++ KERN_PROC, ++ KERN_PROC_PID, ++ getpid(), +#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -+#else - if (sysctl(mib, 4, NULL, &buffer_size, NULL, 0)) ++ sizeof(KINFO_PROC), ++ 1, +#endif - return 0; ++ }; ++ u_int miblen = sizeof(mib) / sizeof(mib[0]); - struct kinfo_proc *proc = (kinfo_proc*) malloc(buffer_size); -+#if defined(__NetBSD__) -+ struct kinfo_proc2 *proc = (struct kinfo_proc2 *) malloc(buffer_size); -+#else -+ struct kinfo_proc *proc = (struct kinfo_proc *) malloc(buffer_size); -+#endif -+ -+#if defined(__NetBSD__) || defined(__OpenBSD__) -+ if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { -+#else - if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { -+#endif - free(proc); - return 0; - } -+ -+#if defined(XP_MACOSX) - PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; - starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; +- if (sysctl(mib, 4, proc, &buffer_size, NULL, 0)) { +- free(proc); +- return 0; +- } +- PRTime starttime = static_cast(proc->kp_proc.p_un.__p_starttime.tv_sec) * PR_USEC_PER_SEC; +- starttime += proc->kp_proc.p_un.__p_starttime.tv_usec; - free(proc); - return starttime; -} @@ -74,24 +89,21 @@ - int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid(), sizeof(struct kinfo_proc), 1 }; - size_t buffer_size; - if (sysctl(mib, 6, NULL, &buffer_size, NULL, 0)) -- return 0; -- ++ KINFO_PROC proc; ++ size_t buffer_size = sizeof(proc); ++ if (sysctl(mib, miblen, &proc, &buffer_size, NULL, 0)) + return 0; + - struct kinfo_proc *proc = (struct kinfo_proc*) malloc(buffer_size); - if (sysctl(mib, 6, proc, &buffer_size, NULL, 0)) { - free(proc); - return 0; - } -+#elif defined(__DragonFly__) -+ PRTime starttime = static_cast(proc->kp_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->kp_start.tv_usec; -+#elif defined(__FreeBSD__) -+ PRTime starttime = static_cast(proc->ki_start.tv_sec) * PR_USEC_PER_SEC; -+ starttime += proc->ki_start.tv_usec; -+#else - PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; - starttime += proc->p_ustart_usec; -+#endif -+ - free(proc); +- PRTime starttime = static_cast(proc->p_ustart_sec) * PR_USEC_PER_SEC; +- starttime += proc->p_ustart_usec; +- free(proc); ++ PRTime starttime = static_cast(proc.KP_START_SEC) * PR_USEC_PER_SEC; ++ starttime += proc.KP_START_USEC; return starttime; } + #else