[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
svn-freebsd-gecko at chruetertee.ch
svn-freebsd-gecko at chruetertee.ch
Thu Sep 13 12:47:28 UTC 2012
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 <sys/syscall.h>
#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<PRTime>(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<PRTime>(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<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->kp_start.tv_usec;
-+#elif defined(__FreeBSD__)
-+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->ki_start.tv_usec;
-+#else
- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
- starttime += proc->p_ustart_usec;
-+#endif
-+
- free(proc);
+- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
+- starttime += proc->p_ustart_usec;
+- free(proc);
++ PRTime starttime = static_cast<PRTime>(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 <sys/syscall.h>
#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<PRTime>(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<PRTime>(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<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->kp_start.tv_usec;
-+#elif defined(__FreeBSD__)
-+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->ki_start.tv_usec;
-+#else
- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
- starttime += proc->p_ustart_usec;
-+#endif
-+
- free(proc);
+- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
+- starttime += proc->p_ustart_usec;
+- free(proc);
++ PRTime starttime = static_cast<PRTime>(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 <sys/syscall.h>
#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<PRTime>(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<PRTime>(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<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->kp_start.tv_usec;
-+#elif defined(__FreeBSD__)
-+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->ki_start.tv_usec;
-+#else
- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
- starttime += proc->p_ustart_usec;
-+#endif
-+
- free(proc);
+- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
+- starttime += proc->p_ustart_usec;
+- free(proc);
++ PRTime starttime = static_cast<PRTime>(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 <sys/syscall.h>
#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<PRTime>(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<PRTime>(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<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->kp_start.tv_usec;
-+#elif defined(__FreeBSD__)
-+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->ki_start.tv_usec;
-+#else
- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
- starttime += proc->p_ustart_usec;
-+#endif
-+
- free(proc);
+- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
+- starttime += proc->p_ustart_usec;
+- free(proc);
++ PRTime starttime = static_cast<PRTime>(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 <sys/syscall.h>
#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<PRTime>(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<PRTime>(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<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->kp_start.tv_usec;
-+#elif defined(__FreeBSD__)
-+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->ki_start.tv_usec;
-+#else
- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
- starttime += proc->p_ustart_usec;
-+#endif
-+
- free(proc);
+- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
+- starttime += proc->p_ustart_usec;
+- free(proc);
++ PRTime starttime = static_cast<PRTime>(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 <sys/syscall.h>
#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<PRTime>(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<PRTime>(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<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->kp_start.tv_usec;
-+#elif defined(__FreeBSD__)
-+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->ki_start.tv_usec;
-+#else
- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
- starttime += proc->p_ustart_usec;
-+#endif
-+
- free(proc);
+- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
+- starttime += proc->p_ustart_usec;
+- free(proc);
++ PRTime starttime = static_cast<PRTime>(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 <sys/syscall.h>
#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<PRTime>(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<PRTime>(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<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->kp_start.tv_usec;
-+#elif defined(__FreeBSD__)
-+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->ki_start.tv_usec;
-+#else
- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
- starttime += proc->p_ustart_usec;
-+#endif
-+
- free(proc);
+- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
+- starttime += proc->p_ustart_usec;
+- free(proc);
++ PRTime starttime = static_cast<PRTime>(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 <sys/syscall.h>
#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<PRTime>(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<PRTime>(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<PRTime>(proc->kp_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->kp_start.tv_usec;
-+#elif defined(__FreeBSD__)
-+ PRTime starttime = static_cast<PRTime>(proc->ki_start.tv_sec) * PR_USEC_PER_SEC;
-+ starttime += proc->ki_start.tv_usec;
-+#else
- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
- starttime += proc->p_ustart_usec;
-+#endif
-+
- free(proc);
+- PRTime starttime = static_cast<PRTime>(proc->p_ustart_sec) * PR_USEC_PER_SEC;
+- starttime += proc->p_ustart_usec;
+- free(proc);
++ PRTime starttime = static_cast<PRTime>(proc.KP_START_SEC) * PR_USEC_PER_SEC;
++ starttime += proc.KP_START_USEC;
return starttime;
}
+ #else
More information about the freebsd-gecko
mailing list