Fixed memory leak- object acquired by 'in' operator was not being released.
git-svn-id: svn://10.0.0.236/trunk@45204 18797224-902f-48f8-a5cc-f745e15eee43
- Added support for reflecting interface constants as Components.interfaces.nsIFoo.* (this may change).
- Only interfaces marked 'scriptable' are visible in the Components.interfaces array.
- Getting rid of some of the template style syntax.
- Added GetWStringCopied and GetWStringShared for lame tests of speed in wstring copies.
- Cleaned up more Unix warnings.
git-svn-id: svn://10.0.0.236/trunk@44460 18797224-902f-48f8-a5cc-f745e15eee43
- Throw nsIXPCException objects rather than strings into JS.
- Better and more information in exceptions - including names of result codes and call stack.
- Added nsIJSErrorReport as attachment to exceptions for JS errors.
- Exceptions thrown in JS now get properly translated into result codes.
- Exceptions thrown JS->native->JS get propagated.
- Added per thread nsIXPConnect::[G,S]etPendingException.
- Added XPCConvert::JSValToXPCException - still needs better handling JS exception objects.
- Added XPCConvert::JSErrorToXPCException.
- No longer eat JS errrors in wrapped JS code called from native code.
- Declare xpconnect result codes in nsIXPConnect.h.
- Changed format of xpc.msg to give error names and descriptions.
- Fixed extraneous semicolons on XPC_IMPLEMENT_* macro usage.
- Using NS_IMPL_ISUPPORTS2 for nsIXPCScriptable declarations.
- Improve refcounting in xpccomponents.
- Turned some common code into macros.
- Converting some interfaces to use mccabe's NS_IMPL_* macros.
- Cleanup lots of trailing whitespace.
- Fixed idl comments.
git-svn-id: svn://10.0.0.236/trunk@44098 18797224-902f-48f8-a5cc-f745e15eee43
Hopefully this'll help turn the copy-n-paste tide towards using this macro.
git-svn-id: svn://10.0.0.236/trunk@43988 18797224-902f-48f8-a5cc-f745e15eee43
Removed various sections of config.mk & rules.mk that were only used by OBJDIR or by a non-autoconf build.
git-svn-id: svn://10.0.0.236/trunk@43791 18797224-902f-48f8-a5cc-f745e15eee43
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL. You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All Rights
# Reserved.
#
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
LIBRARY_NAME = xpconnect
MODULE = xpconnect
CPPSRCS = \
nsXPConnect.cpp \
xpcarbitrary.cpp \
xpccomponents.cpp \
xpccontext.cpp \
xpcconvert.cpp \
xpcjsid.cpp \
xpclog.cpp \
xpcmaps.cpp \
xpcmodule.cpp \
xpcstack.cpp \
xpcthreadcontext.cpp \
xpcthrower.cpp \
xpcwrappedjs.cpp \
xpcwrappedjsclass.cpp \
xpcwrappednative.cpp \
xpcwrappednativeclass.cpp \
xpcwrappednativejsops.cpp \
$(NULL)
include $(topsrcdir)/config/config.mk
# XXX hackage!
# only copy the .so to components dir on platforms where xptcall is supported
# Unixish x86
ifneq (,$(filter SunOS Linux FreeBSD NetBSD BSD_OS,$(OS_ARCH)))
ifeq (86,$(findstring 86,$(OS_TEST)))
IS_COMPONENT = 1
endif
endif
# Neutrino Cross-Compiled for x86
ifneq (,$(filter NTO,$(OS_TARGET)))
ifeq (86,$(findstring 86,$(OS_TEST)))
IS_COMPONENT = 1
endif
endif
# Solaris/sparc
ifeq ($(OS_ARCH),SunOS)
ifneq (86,$(findstring 86,$(OS_TEST)))
IS_COMPONENT = 1
endif
endif
# Linux/sparc
ifeq ($(OS_ARCH),Linux)
ifeq ($(OS_TEST),sparc)
IS_COMPONENT = 1
endif
endif
# NetBSD/m68k
ifeq ($(OS_ARCH),NetBSD)
ifneq (,$(filter amiga atari hp300 mac68k mvme68k next68k sun3 sun3x x68k,$(OS_TEST)))
IS_COMPONENT = 1
endif
endif
# BeOS/Intel
ifeq ($(OS_ARCH),BeOS)
ifeq ($(OS_TEST),BePC)
IS_COMPONENT = 1
endif
endif
# HPUX
ifeq ($(OS_ARCH),HP-UX)
ifneq ($(CC),gcc)
IS_COMPONENT = 1
endif
endif
# AIX
ifeq ($(OS_ARCH),AIX)
IS_COMPONENT = 1
endif
# IRIX
ifeq ($(OS_ARCH),IRIX)
ifneq ($(basename $(OS_RELEASE)),5)
IS_COMPONENT = 1
endif
endif
# OpenVMS (Alpha only at this point)
ifeq ($(OS_ARCH),OpenVMS)
ifeq ($(CPU_ARCH),Alpha)
IS_COMPONENT = 1
endif
endif
# Linux or NetBSD ARM
ifneq (,$(filter Linux NetBSD,$(OS_ARCH)))
ifeq (arm,$(findstring arm,$(OS_TEST)))
IS_COMPONENT = 1
endif
ifeq (sa110,$(findstring sa110,$(OS_TEST)))
IS_COMPONENT = 1
endif
endif
include $(topsrcdir)/config/rules.mk
# this is automatically discovered under BeOS
ifneq ($(OS_ARCH),BeOS)
LIBS += \
-lmozjs \
-lxpcom \
-lmozreg \
$(NSPR_LIBS) \
$(NULL)
endif
DEFINES += -DJSFILE -DJS_THREADSAFE
git-svn-id: svn://10.0.0.236/trunk@43693 18797224-902f-48f8-a5cc-f745e15eee43
Error if an interface is declared [scriptable], but contains methods that can't be scripted because they refer to native-declared types, unless the method is declared [noscript].
This change is intended to make it easier to determine when an interface is not scriptable, and to make it easier to see what changes need to be made to make it scriptable.
As many of the .idl files in the tree defined [scriptable] interfaces that contained non-scriptable methods, I've sprinkled [noscript] throughout. As the interfaces weren't scriptable anyway, this shouldn't change their visibility to javascript.
git-svn-id: svn://10.0.0.236/trunk@42960 18797224-902f-48f8-a5cc-f745e15eee43
(tagged machine words, some of which when untagged are 8-byte-aligned GC heap
pointers).
- Fix bad effects of rogue global-replace of JS_FREE by free.
git-svn-id: svn://10.0.0.236/trunk@42693 18797224-902f-48f8-a5cc-f745e15eee43
2) add a test that acts as a sample for doing oberloaded methods on xpconnect wraped natives.
3) add a NOT_IMPLEMENTED method to wrapped native for getting the prototype JS object.
4) Set the global object of the JSContext as the wrapped native JSObject's parent when creating this JSObject. This makes JS code compiled against the wrapper actuall work!
5) fix the refcounting on factories in the tests/components module
git-svn-id: svn://10.0.0.236/trunk@41648 18797224-902f-48f8-a5cc-f745e15eee43