Initial checkin of patches used in BeZilla* builds

This commit is contained in:
Matt Madia
2009-02-23 03:49:50 +00:00
parent 5d1ed8e703
commit 3166451302
9 changed files with 18719 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,204 @@
Index: mozilla/directory/c-sdk/config/BeOS.mk
===================================================================
RCS file: /cvsroot/mozilla/directory/c-sdk/config/BeOS.mk,v
retrieving revision 5.0.138.1
diff -u -8 -p -r5.0.138.1 BeOS.mk
--- mozilla/directory/c-sdk/config/BeOS.mk 3 Feb 2006 14:41:11 -0000 5.0.138.1
+++ mozilla/directory/c-sdk/config/BeOS.mk 19 Feb 2009 02:42:41 -0000
@@ -64,17 +64,18 @@ ifeq (PC,$(findstring PC,$(OS_TEST)))
CPU_ARCH = x86
CC = gcc
CCC = g++
LD = gcc
RANLIB = ranlib
DSO_LDOPTS = -nostart
PORT_FLAGS = -DHAVE_STRERROR
ifdef BUILD_OPT
-OPTIMIZER = -O2
+#OPTIMIZER = -O2
+OPTIMIZER = -O1 -march=pentium -mcpu=pentiumpro
LDFLAGS += -s
else
OPTIMIZER = -gdwarf-2 -O0
endif
else
CPU_ARCH = ppc
CC = mwcc
CCC = mwcc
@@ -85,17 +86,18 @@ DSO_LDOPTS = -xms -export p
-term _term_routine_ \
-lroot -lnet \
/boot/develop/lib/ppc/glue-noinit.a \
/boot/develop/lib/ppc/init_term_dyn.o \
/boot/develop/lib/ppc/start_dyn.o
PORT_FLAGS = -DHAVE_STRERROR -D_POSIX_SOURCE
ifdef BUILD_OPT
-OPTIMIZER = -O2
+#OPTIMIZER = -O2
+OPTIMIZER = -O1 -march=pentium -mcpu=pentiumpro
else
OPTIMIZER = -g -O0
endif
endif
CPU_ARCH_TAG = _$(CPU_ARCH)
OS_INCLUDES = -I- -I.
#G++INCLUDES = -I/usr/include/g++
Index: mozilla/directory/c-sdk/configure.in
===================================================================
RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v
retrieving revision 5.0.2.34.4.3
diff -u -8 -p -r5.0.2.34.4.3 configure.in
--- mozilla/directory/c-sdk/configure.in 11 Jul 2007 20:43:19 -0000 5.0.2.34.4.3
+++ mozilla/directory/c-sdk/configure.in 19 Feb 2009 02:43:12 -0000
@@ -819,17 +819,17 @@ case "$target" in
AC_DEFINE(_POSIX_SOURCE)
DSO_LDOPTS=-nostart
MDCPUCFG_H=_beos.cfg
USE_BTHREADS=1
PR_MD_ARCH_DIR=beos
RESOLVE_LINK_SYMBOLS=1
case "${target_cpu}" in
i*86)
- _OPTIMIZE_FLAGS=-O2
+ _OPTIMIZE_FLAGS=-O1 -march=pentium -mcpu=pentiumpro
_DEBUG_FLAGS='-gdwarf-2 -O0'
MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@'
AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"])
;;
powerpc)
CC=mwcc
CCC=mwcc
LD=mwld
Index: mozilla/nsprpub/configure.in
===================================================================
RCS file: /cvsroot/mozilla/nsprpub/configure.in,v
retrieving revision 1.199.2.17
diff -u -8 -p -r1.199.2.17 configure.in
--- mozilla/nsprpub/configure.in 31 Oct 2007 18:07:38 -0000 1.199.2.17
+++ mozilla/nsprpub/configure.in 19 Feb 2009 02:59:37 -0000
@@ -874,17 +874,17 @@ case "$target" in
AC_DEFINE(_POSIX_SOURCE)
DSO_LDOPTS=-nostart
MDCPUCFG_H=_beos.cfg
USE_BTHREADS=1
PR_MD_ARCH_DIR=beos
RESOLVE_LINK_SYMBOLS=1
case "${target_cpu}" in
i*86)
- _OPTIMIZE_FLAGS=-O2
+ _OPTIMIZE_FLAGS=-O1 -march=pentium -mcpu=pentiumpro
_DEBUG_FLAGS='-gdwarf-2 -O0'
MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@'
AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"])
;;
powerpc)
CC=mwcc
CCC=mwcc
LD=mwld
Index: mozilla/security/coreconf/BeOS.mk
===================================================================
RCS file: /cvsroot/mozilla/security/coreconf/BeOS.mk,v
retrieving revision 1.2
diff -u -8 -p -r1.2 BeOS.mk
--- mozilla/security/coreconf/BeOS.mk 25 Apr 2004 15:02:17 -0000 1.2
+++ mozilla/security/coreconf/BeOS.mk 19 Feb 2009 03:02:58 -0000
@@ -56,17 +56,17 @@ ifeq ($(OS_TEST),ppc)
CPU_ARCH = ppc
else
OS_REL_CFLAGS = -Di386
CPU_ARCH = x86
endif
MKSHLIB = $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
ifdef BUILD_OPT
- OPTIMIZER = -O2
+ OPTIMIZER = -O1 -march=pentium -mcpu=pentiumpro
endif
OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -pipe
OS_LIBS = -lbe
DEFINES += -DBEOS
ifdef USE_PTHREADS
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v
retrieving revision 1.80.4.6
diff -u -8 -p -r1.80.4.6 Makefile.in
--- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2008 21:11:34 -0000 1.80.4.6
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2009 04:24:38 -0000
@@ -94,16 +94,17 @@ CPPSRCS := xptcinvoke_ipf64.cpp xptcstu
ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s
endif
endif
#
# BeOS/Intel (uses the same unixish_x86 code)
#
ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC)
CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp
+CXXFLAGS += -O1 -march=pentium -mcpu=pentiumpro
endif
#
# Neutrino/Intel (uses the same unixish_x86 code)
#
ifeq ($(OS_TARGET),NTO)
ifeq ($(OS_TEST),x86)
CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp
endif
Index: mozilla/security/nss-fips/lib/freebl/mpi/target.mk
===================================================================
RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v
retrieving revision 1.4.2.1
diff -u -8 -p -r1.4.2.1 target.mk
--- mozilla/security/nss-fips/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1
+++ mozilla/security/nss-fips/lib/freebl/mpi/target.mk 19 Feb 2009 04:29:59 -0000
@@ -40,17 +40,18 @@
##
## Define CFLAGS to contain any local options your compiler
## setup requires.
##
## Conditional compilation options are no longer here; see
## the file 'mpi-config.h' instead.
##
MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC
-CFLAGS= -O $(MPICMN)
+CFLAGS= -O1 -march=pentium -mcpu=pentiumpro
+#CFLAGS= -O $(MPICMN)
#CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN)
#CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN)
#CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN)
ifeq ($(TARGET),mipsIRIX)
#IRIX
#MPICMN += -DMP_MONT_USE_MP_MUL
MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE
Index: mozilla/security/nss/lib/freebl/mpi/target.mk
===================================================================
RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v
retrieving revision 1.4.2.1
diff -u -8 -p -r1.4.2.1 target.mk
--- mozilla/security/nss/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1
+++ mozilla/security/nss/lib/freebl/mpi/target.mk 19 Feb 2009 04:30:56 -0000
@@ -40,17 +40,18 @@
##
## Define CFLAGS to contain any local options your compiler
## setup requires.
##
## Conditional compilation options are no longer here; see
## the file 'mpi-config.h' instead.
##
MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC
-CFLAGS= -O $(MPICMN)
+CFLAGS= -O1 -march=pentium -mcpu=pentiumpro
+#CFLAGS= -O $(MPICMN)
#CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN)
#CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN)
#CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN)
ifeq ($(TARGET),mipsIRIX)
#IRIX
#MPICMN += -DMP_MONT_USE_MP_MUL
MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE

View File

@@ -0,0 +1,204 @@
Index: mozilla/directory/c-sdk/config/BeOS.mk
===================================================================
RCS file: /cvsroot/mozilla/directory/c-sdk/config/BeOS.mk,v
retrieving revision 5.0.138.1
diff -u -8 -p -r5.0.138.1 BeOS.mk
--- mozilla/directory/c-sdk/config/BeOS.mk 3 Feb 2006 14:41:11 -0000 5.0.138.1
+++ mozilla/directory/c-sdk/config/BeOS.mk 19 Feb 2009 02:42:41 -0000
@@ -64,17 +64,18 @@ ifeq (PC,$(findstring PC,$(OS_TEST)))
CPU_ARCH = x86
CC = gcc
CCC = g++
LD = gcc
RANLIB = ranlib
DSO_LDOPTS = -nostart
PORT_FLAGS = -DHAVE_STRERROR
ifdef BUILD_OPT
-OPTIMIZER = -O2
+#OPTIMIZER = -O2
+OPTIMIZER = -O3 -march=pentium -mcpu=pentiumpro
LDFLAGS += -s
else
OPTIMIZER = -gdwarf-2 -O0
endif
else
CPU_ARCH = ppc
CC = mwcc
CCC = mwcc
@@ -85,17 +86,18 @@ DSO_LDOPTS = -xms -export p
-term _term_routine_ \
-lroot -lnet \
/boot/develop/lib/ppc/glue-noinit.a \
/boot/develop/lib/ppc/init_term_dyn.o \
/boot/develop/lib/ppc/start_dyn.o
PORT_FLAGS = -DHAVE_STRERROR -D_POSIX_SOURCE
ifdef BUILD_OPT
-OPTIMIZER = -O2
+#OPTIMIZER = -O2
+OPTIMIZER = -O3 -march=pentium -mcpu=pentiumpro
else
OPTIMIZER = -g -O0
endif
endif
CPU_ARCH_TAG = _$(CPU_ARCH)
OS_INCLUDES = -I- -I.
#G++INCLUDES = -I/usr/include/g++
Index: mozilla/directory/c-sdk/configure.in
===================================================================
RCS file: /cvsroot/mozilla/directory/c-sdk/configure.in,v
retrieving revision 5.0.2.34.4.3
diff -u -8 -p -r5.0.2.34.4.3 configure.in
--- mozilla/directory/c-sdk/configure.in 11 Jul 2007 20:43:19 -0000 5.0.2.34.4.3
+++ mozilla/directory/c-sdk/configure.in 19 Feb 2009 02:43:12 -0000
@@ -819,17 +819,17 @@ case "$target" in
AC_DEFINE(_POSIX_SOURCE)
DSO_LDOPTS=-nostart
MDCPUCFG_H=_beos.cfg
USE_BTHREADS=1
PR_MD_ARCH_DIR=beos
RESOLVE_LINK_SYMBOLS=1
case "${target_cpu}" in
i*86)
- _OPTIMIZE_FLAGS=-O2
+ _OPTIMIZE_FLAGS=-O3 -march=pentium -mcpu=pentiumpro
_DEBUG_FLAGS='-gdwarf-2 -O0'
MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@'
AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"])
;;
powerpc)
CC=mwcc
CCC=mwcc
LD=mwld
Index: mozilla/nsprpub/configure.in
===================================================================
RCS file: /cvsroot/mozilla/nsprpub/configure.in,v
retrieving revision 1.199.2.17
diff -u -8 -p -r1.199.2.17 configure.in
--- mozilla/nsprpub/configure.in 31 Oct 2007 18:07:38 -0000 1.199.2.17
+++ mozilla/nsprpub/configure.in 19 Feb 2009 02:59:37 -0000
@@ -874,17 +874,17 @@ case "$target" in
AC_DEFINE(_POSIX_SOURCE)
DSO_LDOPTS=-nostart
MDCPUCFG_H=_beos.cfg
USE_BTHREADS=1
PR_MD_ARCH_DIR=beos
RESOLVE_LINK_SYMBOLS=1
case "${target_cpu}" in
i*86)
- _OPTIMIZE_FLAGS=-O2
+ _OPTIMIZE_FLAGS=-O3 -march=pentium -mcpu=pentiumpro
_DEBUG_FLAGS='-gdwarf-2 -O0'
MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@'
AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"])
;;
powerpc)
CC=mwcc
CCC=mwcc
LD=mwld
Index: mozilla/security/coreconf/BeOS.mk
===================================================================
RCS file: /cvsroot/mozilla/security/coreconf/BeOS.mk,v
retrieving revision 1.2
diff -u -8 -p -r1.2 BeOS.mk
--- mozilla/security/coreconf/BeOS.mk 25 Apr 2004 15:02:17 -0000 1.2
+++ mozilla/security/coreconf/BeOS.mk 19 Feb 2009 03:02:58 -0000
@@ -56,17 +56,17 @@ ifeq ($(OS_TEST),ppc)
CPU_ARCH = ppc
else
OS_REL_CFLAGS = -Di386
CPU_ARCH = x86
endif
MKSHLIB = $(CC) -nostart -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
ifdef BUILD_OPT
- OPTIMIZER = -O2
+ OPTIMIZER = -O3 -march=pentium -mcpu=pentiumpro
endif
OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wall -pipe
OS_LIBS = -lbe
DEFINES += -DBEOS
ifdef USE_PTHREADS
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in,v
retrieving revision 1.80.4.6
diff -u -8 -p -r1.80.4.6 Makefile.in
--- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2008 21:11:34 -0000 1.80.4.6
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in 19 Feb 2009 04:24:38 -0000
@@ -94,16 +94,17 @@ CPPSRCS := xptcinvoke_ipf64.cpp xptcstu
ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s
endif
endif
#
# BeOS/Intel (uses the same unixish_x86 code)
#
ifeq ($(OS_ARCH)$(OS_TEST),BeOSBePC)
CPPSRCS := xptcinvoke_gcc_x86_unix.cpp xptcstubs_gcc_x86_unix.cpp
+CXXFLAGS += -O3 -march=pentium -mcpu=pentiumpro
endif
#
# Neutrino/Intel (uses the same unixish_x86 code)
#
ifeq ($(OS_TARGET),NTO)
ifeq ($(OS_TEST),x86)
CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp
endif
Index: mozilla/security/nss-fips/lib/freebl/mpi/target.mk
===================================================================
RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v
retrieving revision 1.4.2.1
diff -u -8 -p -r1.4.2.1 target.mk
--- mozilla/security/nss-fips/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1
+++ mozilla/security/nss-fips/lib/freebl/mpi/target.mk 19 Feb 2009 04:29:59 -0000
@@ -40,17 +40,18 @@
##
## Define CFLAGS to contain any local options your compiler
## setup requires.
##
## Conditional compilation options are no longer here; see
## the file 'mpi-config.h' instead.
##
MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC
-CFLAGS= -O $(MPICMN)
+CFLAGS= -O3 -march=pentium -mcpu=pentiumpro
+#CFLAGS= -O $(MPICMN)
#CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN)
#CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN)
#CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN)
ifeq ($(TARGET),mipsIRIX)
#IRIX
#MPICMN += -DMP_MONT_USE_MP_MUL
MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE
Index: mozilla/security/nss/lib/freebl/mpi/target.mk
===================================================================
RCS file: /cvsroot/mozilla/security/nss/lib/freebl/mpi/target.mk,v
retrieving revision 1.4.2.1
diff -u -8 -p -r1.4.2.1 target.mk
--- mozilla/security/nss/lib/freebl/mpi/target.mk 16 Mar 2006 16:37:28 -0000 1.4.2.1
+++ mozilla/security/nss/lib/freebl/mpi/target.mk 19 Feb 2009 04:30:56 -0000
@@ -40,17 +40,18 @@
##
## Define CFLAGS to contain any local options your compiler
## setup requires.
##
## Conditional compilation options are no longer here; see
## the file 'mpi-config.h' instead.
##
MPICMN = -I. -DMP_API_COMPATIBLE -DMP_IOFUNC
-CFLAGS= -O $(MPICMN)
+CFLAGS= -O3 -march=pentium -mcpu=pentiumpro
+#CFLAGS= -O $(MPICMN)
#CFLAGS=-ansi -fullwarn -woff 1521 -O3 $(MPICMN)
#CFLAGS=-ansi -pedantic -Wall -O3 $(MPICMN)
#CFLAGS=-ansi -pedantic -Wall -g -O2 -DMP_DEBUG=1 $(MPICMN)
ifeq ($(TARGET),mipsIRIX)
#IRIX
#MPICMN += -DMP_MONT_USE_MP_MUL
MPICMN += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,406 @@
Index: mozilla/widget/src/beos/nsAppShell.cpp
===================================================================
RCS file: /cvsroot/mozilla/widget/src/beos/nsAppShell.cpp,v
retrieving revision 1.29.8.2
diff -u -8 -p -r1.29.8.2 nsAppShell.cpp
--- mozilla/widget/src/beos/nsAppShell.cpp 3 Jul 2007 09:33:54 -0000 1.29.8.2
+++ mozilla/widget/src/beos/nsAppShell.cpp 19 Feb 2009 06:12:35 -0000
@@ -113,20 +113,38 @@ nsAppShell::nsAppShell()
//-------------------------------------------------------------------------
NS_IMETHODIMP nsAppShell::Create(int* argc, char ** argv)
{
// system wide unique names
// NOTE: this needs to be run from within the main application thread
char portname[64];
char semname[64];
- PR_snprintf(portname, sizeof(portname), "event%lx",
- (long unsigned) PR_GetCurrentThread());
- PR_snprintf(semname, sizeof(semname), "sync%lx",
- (long unsigned) PR_GetCurrentThread());
+ int32 cookie = 0;
+ image_info iinfo;
+ char *leaf = NULL;
+ do {
+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK &&
+ strlen(iinfo.name) > 0 &&
+ (leaf = strrchr(iinfo.name, '/')) != NULL)
+ {
+ leaf++;
+ PR_snprintf(portname, sizeof(portname), "event%lx",
+ (long unsigned) find_thread(leaf));
+ PR_snprintf(semname, sizeof(semname), "sync%lx",
+ (long unsigned) find_thread(leaf));
+ }
+ else
+ {
+ PR_snprintf(portname, sizeof(portname), "event%lx",
+ (long unsigned) find_thread(0));
+ PR_snprintf(semname, sizeof(semname), "sync%lx",
+ (long unsigned) find_thread(0));
+ }
+ } while(iinfo.type != B_APP_IMAGE);
#ifdef DEBUG
printf("nsAppShell::Create portname: %s, semname: %s\n", portname, semname);
#endif
/*
* Set up the port for communicating. As restarts thru execv may occur
* and ports survive those (with faulty events as result). Combined with the fact
* that plevent.c can setup the port ahead of us we need to take extra
@@ -337,19 +355,33 @@ NS_IMETHODIMP nsAppShell::GetNativeEvent
return NS_OK;
}
NS_IMETHODIMP nsAppShell::DispatchNativeEvent(PRBool aRealEvent, void *aEvent)
{
// should we check for eventport initialization ?
char portname[64];
- PR_snprintf(portname, sizeof(portname), "event%lx",
- (long unsigned) PR_GetCurrentThread());
-
+ int32 cookie = 0;
+ image_info iinfo;
+ char *leaf = NULL;
+ do {
+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK &&
+ strlen(iinfo.name) > 0 &&
+ (leaf = strrchr(iinfo.name, '/')) != NULL)
+ {
+ leaf++;
+ PR_snprintf(portname, sizeof(portname), "event%lx",
+ (long unsigned) find_thread(leaf));
+ }
+ else
+ PR_snprintf(portname, sizeof(portname), "event%lx",
+ (long unsigned) find_thread(0)/*PR_GetCurrentThread()*/);
+ } while(iinfo.type != B_APP_IMAGE);
+
if((eventport = find_port(portname)) < 0)
{
// not initialized
#ifdef DEBUG
printf("nsAppShell::DispatchNativeEvent() was called before init\n");
#endif
fflush(stdout);
return NS_ERROR_FAILURE;
Index: mozilla/widget/src/beos/nsToolkit.cpp
===================================================================
RCS file: /cvsroot/mozilla/widget/src/beos/nsToolkit.cpp,v
retrieving revision 1.23.8.1
diff -u -8 -p -r1.23.8.1 nsToolkit.cpp
--- mozilla/widget/src/beos/nsToolkit.cpp 3 Jul 2007 09:33:54 -0000 1.23.8.1
+++ mozilla/widget/src/beos/nsToolkit.cpp 19 Feb 2009 06:12:35 -0000
@@ -37,16 +37,17 @@
#include "nsToolkit.h"
#include "prmon.h"
#include "prtime.h"
#include "nsGUIEvent.h"
#include "nsSwitchToUIThread.h"
#include "plevent.h"
#include "prprf.h"
+#include <image.h>
//
// Static thread local storage index of the Toolkit
// object associated with a given thread...
//
static PRUintn gToolkitTLSIndex = 0;
//-------------------------------------------------------------------------
@@ -84,20 +85,36 @@ void nsToolkit::RunPump(void* arg)
gThreadState = PR_TRUE;
PR_Notify(info->monitor);
PR_ExitMonitor(info->monitor);
delete info;
// system wide unique names
- PR_snprintf(portname, sizeof(portname), "event%lx",
- (long unsigned) PR_GetCurrentThread());
-
- port_id event = create_port(100, portname);
+ int32 cookie = 0;
+ image_info iinfo;
+ char *leaf = NULL;
+ do {
+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK &&
+ strlen(iinfo.name) > 0 &&
+ (leaf = strrchr(iinfo.name, '/')) != NULL)
+ {
+ leaf++;
+ PR_snprintf(portname, sizeof(portname), "event%lx",
+ (long unsigned) find_thread(leaf));
+ }
+ else
+ {
+ PR_snprintf(portname, sizeof(portname), "event%lx",
+ (long unsigned) find_thread(0));
+ }
+ } while(iinfo.type != B_APP_IMAGE);
+
+ port_id event = create_port(200, portname);
while(read_port(event, &code, &id, sizeof(id)) >= 0)
{
switch(code)
{
case WM_CALLMETHOD :
{
MethodInfo *mInfo = (MethodInfo *)id.data;
@@ -125,16 +142,17 @@ void nsToolkit::RunPump(void* arg)
//
// constructor
//
//-------------------------------------------------------------------------
nsToolkit::nsToolkit()
{
localthread = false;
mGuiThread = NULL;
+ mGUIThreadID = 0;
}
//-------------------------------------------------------------------------
//
// destructor
//
//-------------------------------------------------------------------------
@@ -182,17 +200,33 @@ void nsToolkit::CreateUIThread()
0);
// wait for the gui thread to start
while(gThreadState == PR_FALSE)
{
PR_Wait(monitor, PR_INTERVAL_NO_TIMEOUT);
}
}
-
+
+ image_info iinfo;
+ int32 cookie = 0;
+ char *leaf = NULL;
+ do {
+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK &&
+ strlen(iinfo.name) > 0 &&
+ (leaf = strrchr(iinfo.name, '/')) != NULL)
+ {
+ leaf++;
+ mGUIThreadID = find_thread(leaf);
+ }
+ else
+ {
+ mGUIThreadID = find_thread(0);
+ }
+ } while(iinfo.type != B_APP_IMAGE);
// at this point the thread is running
PR_ExitMonitor(monitor);
PR_DestroyMonitor(monitor);
}
//-------------------------------------------------------------------------
//
@@ -213,28 +247,42 @@ NS_METHOD nsToolkit::Init(PRThread *aThr
{
localthread = true;
// create a thread where the message pump will run
CreateUIThread();
}
cached = false;
-
+ image_info iinfo;
+ int32 cookie = 0;
+ char *leaf = NULL;
+ do {
+ if (get_next_image_info(0, &cookie, &iinfo) == B_OK &&
+ strlen(iinfo.name) > 0 &&
+ (leaf = strrchr(iinfo.name, '/')) != NULL)
+ {
+ leaf++;
+ mGUIThreadID = find_thread(leaf);
+ }
+ else
+ {
+ mGUIThreadID = find_thread(0);
+ }
+ } while(iinfo.type != B_APP_IMAGE);
return NS_OK;
}
void nsToolkit::GetInterface()
{
if(! cached)
{
char portname[64];
-
PR_snprintf(portname, sizeof(portname), "event%lx",
- (long unsigned) mGuiThread);
+ (long unsigned) mGUIThreadID);
eventport = find_port(portname);
cached = true;
}
}
void nsToolkit::CallMethod(MethodInfo *info)
Index: mozilla/widget/src/beos/nsToolkit.h
===================================================================
RCS file: /cvsroot/mozilla/widget/src/beos/nsToolkit.h,v
retrieving revision 1.5.8.1
diff -u -8 -p -r1.5.8.1 nsToolkit.h
--- mozilla/widget/src/beos/nsToolkit.h 3 Jul 2007 09:33:54 -0000 1.5.8.1
+++ mozilla/widget/src/beos/nsToolkit.h 19 Feb 2009 06:12:36 -0000
@@ -66,16 +66,17 @@ public:
void Kill();
private:
virtual ~nsToolkit();
void CreateUIThread(void);
protected:
// Thread Id of the "main" Gui thread.
PRThread *mGuiThread;
+ thread_id mGUIThreadID;
static void RunPump(void* arg);
void GetInterface();
bool cached;
bool localthread;
port_id eventport;
};
#endif // TOOLKIT_H
Index: mozilla/xpcom/threads/plevent.c
===================================================================
RCS file: /cvsroot/mozilla/xpcom/threads/Attic/plevent.c,v
retrieving revision 1.54.2.1
diff -u -8 -p -r1.54.2.1 plevent.c
--- mozilla/xpcom/threads/plevent.c 26 Sep 2005 19:43:34 -0000 1.54.2.1
+++ mozilla/xpcom/threads/plevent.c 19 Feb 2009 06:12:40 -0000
@@ -61,16 +61,18 @@
#if defined(XP_UNIX)
/* for fcntl */
#include <sys/types.h>
#include <fcntl.h>
#endif
#if defined(XP_BEOS)
#include <kernel/OS.h>
+#include <image.h>
+#include <string.h>
#endif
#if defined(XP_MACOSX)
#if defined(MOZ_WIDGET_COCOA)
#include <CoreFoundation/CoreFoundation.h>
#define MAC_USE_CFRUNLOOPSOURCE
#elif defined(TARGET_CARBON)
/* #include <CarbonEvents.h> */
@@ -903,21 +905,50 @@ failed:
* Otherwise we need to create the sem and the port, deleting any open ports before.
*/
sem_info info;
int32 cookie = 0;
char portname[64];
char semname[64];
- PR_snprintf(portname, sizeof(portname), "event%lx",
- (long unsigned) self->handlerThread);
- PR_snprintf(semname, sizeof(semname), "sync%lx",
- (long unsigned) self->handlerThread);
+struct _MDThread
+{
+ thread_id tid;
+ sem_id joinSem;
+ PRBool is_joining;
+};
+ struct _MDThread md;
+
+
+//#include "private/primpl.h"
+ image_info iinfo;
+ int32 icookie = 0;
+ char *leaf = NULL;
+ do {
+ if (get_next_image_info(0, &icookie, &iinfo) == B_OK &&
+ strlen(iinfo.name) > 0 &&
+ (leaf = strrchr(iinfo.name, '/')) != NULL)
+ {
+ leaf++;
+ PR_snprintf(portname, sizeof(portname), "event%lx",
+ (long unsigned) find_thread(leaf));
+ PR_snprintf(semname, sizeof(semname), "sync%lx",
+ (long unsigned) find_thread(leaf));
+ }
+ else
+ {
+ PR_snprintf(portname, sizeof(portname), "event%lx",
+ (long unsigned) find_thread(0));
+ PR_snprintf(semname, sizeof(semname), "sync%lx",
+ (long unsigned) find_thread(0));
+ }
+ } while(iinfo.type != B_APP_IMAGE);
+
self->eventport = find_port(portname);
while(get_next_sem_info(0, &cookie, &info) == B_OK)
{
if(strcmp(semname, info.name) != 0) {
continue;
}
/* found semaphore */
@@ -926,17 +957,17 @@ failed:
}
return PR_SUCCESS;
}
/* setup the port and semaphore */
if(self->eventport >= 0)
{
delete_port( self->eventport );
}
- self->eventport = create_port(200, portname);
+ self->eventport = create_port(512, portname);
/* We don't use the sem, but it has to be there
*/
create_sem(0, semname);
return PR_SUCCESS;
#else
return PR_SUCCESS;
#endif
}
@@ -1259,26 +1290,28 @@ _pl_NativeNotify(PLEventQueue* self)
#if defined(XP_BEOS)
struct ThreadInterfaceData
{
void *data;
thread_id waitingThread;
};
+
static PRStatus
_pl_NativeNotify(PLEventQueue* self)
{
struct ThreadInterfaceData id;
id.data = self;
id.waitingThread = 0;
write_port(self->eventport, 'natv', &id, sizeof(id));
return PR_SUCCESS; /* Is this correct? */
}
+
#endif /* XP_BEOS */
#if defined(XP_MACOSX)
static PRStatus
_pl_NativeNotify(PLEventQueue* self)
{
#if defined(MAC_USE_CFRUNLOOPSOURCE)
CFRunLoopSourceSignal(self->mRunLoopSource);

View File

@@ -0,0 +1,25 @@
Index: mozilla/toolkit/xre/nsAppRunner.cpp
===================================================================
RCS file: /cvsroot/mozilla/toolkit/xre/nsAppRunner.cpp,v
retrieving revision 1.113.2.24
diff -u -4 -r1.113.2.24 nsAppRunner.cpp
--- mozilla/toolkit/xre/nsAppRunner.cpp 8 Nov 2007 11:56:25 -0000 1.113.2.24
+++ mozilla/toolkit/xre/nsAppRunner.cpp 16 Feb 2009 19:19:26 -0000
@@ -1360,12 +1360,13 @@
#elif defined(XP_BEOS)
int32 cookie = 0;
image_info info;
-
- if(get_next_image_info(0, &cookie, &info) != B_OK)
- return NS_ERROR_FAILURE;
-
+ do {
+ if(get_next_image_info(0, &cookie, &info) != B_OK)
+ return NS_ERROR_FAILURE;
+ } while(info.type != B_APP_IMAGE);
+
rv = NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE,
getter_AddRefs(lf));
if (NS_FAILED(rv))
return rv;

View File

@@ -0,0 +1,32 @@
Index: mozilla/nsprpub/pr/src/io/prpolevt.c
===================================================================
RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prpolevt.c,v
retrieving revision 3.15
diff -u -8 -p -r3.15 prpolevt.c
--- mozilla/nsprpub/pr/src/io/prpolevt.c 25 Apr 2004 15:00:58 -0000 3.15
+++ mozilla/nsprpub/pr/src/io/prpolevt.c 18 Feb 2009 02:06:41 -0000
@@ -443,20 +443,20 @@ PR_IMPLEMENT(PRFileDesc *) PR_NewPollabl
#else
if (PR_NewTCPSocketPair(fd) == PR_FAILURE) {
fd[0] = fd[1] = NULL;
goto errorExit;
}
/*
* set the TCP_NODELAY option to reduce notification latency
*/
- socket_opt.option = PR_SockOpt_NoDelay;
- socket_opt.value.no_delay = PR_TRUE;
- rv = PR_SetSocketOption(fd[1], &socket_opt);
- PR_ASSERT(PR_SUCCESS == rv);
+// socket_opt.option = PR_SockOpt_NoDelay;
+// socket_opt.value.no_delay = PR_TRUE;
+// rv = PR_SetSocketOption(fd[1], &socket_opt);
+// PR_ASSERT(PR_SUCCESS == rv);
#endif
event->secret->writeEnd = fd[1];
if (PR_PushIOLayer(fd[0], PR_TOP_IO_LAYER, event) == PR_FAILURE) {
goto errorExit;
}
return fd[0];