office-gobmx/scripting
Mike Kaganski ba796f2cdd tdf#121143: don't send OnCloseApp twice; properly cleanup AppBasicManager
The OnCloseApp event is being sent twice: first time in
SfxTerminateListener_Impl::notifyTermination (in Desktop::terminate),
and the second time in Desktop::doShutdown. The second event happens
after application's Basic manager already was destroyed in
SfxApplication::Deinitialize. The Basic provider, which holds a pointer
to the manager, doesn't properly cleanup upon the manager's destruction,
thus trying to use it after free.

This removes the second (duplicate) generated OnCloseApp event, and
makes BasicProviderImpl inherit from SfxListener to allow receiving the
manager's SfxHintId::Dying notification.

Change-Id: Iabf1432c41b1925b11b5a89e5fd8a6ae8249831e
Reviewed-on: https://gerrit.libreoffice.org/62810
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-11-05 20:06:58 +01:00
..
examples
java
source tdf#121143: don't send OnCloseApp twice; properly cleanup AppBasicManager 2018-11-05 20:06:58 +01:00
util
workben/bindings
astyle.options
Format_java_code.sh
Jar_HelloWorld.mk
Jar_Highlight.mk
Jar_MemoryUsage.mk
Jar_ScriptFramework.mk
Jar_ScriptProviderForBeanShell.mk
Jar_ScriptProviderForJava.mk
Jar_ScriptProviderForJavaScript.mk
Library_basprov.mk
Library_dlgprov.mk
Library_protocolhandler.mk
Library_scriptframe.mk
Library_stringresource.mk
Library_vbaevents.mk
Makefile
Module_scripting.mk
Package_java.mk
Package_java_jars.mk
Package_scriptbindinglib.mk
Package_scriptproviderforpython.mk
Package_ScriptsBeanShell.mk
Package_ScriptsJavaScript.mk
Package_ScriptsPython.mk
Pyuno_mailmerge.mk
Rdb_scriptproviderforbeanshell.mk
Rdb_scriptproviderforjavascript.mk
README

This module provides the source code for the Scripting Framework.

For more information on the Scripting Framework, see the project web page:
[http://framework.openoffice.org/scripting/]

This module uses astyle to keep consistent java coding style. Please run

./Format_java_code.sh

before committing.

== Source Code Structure ==

The following directories contain the source code currently used
by the Scripting Framework:

- source/provider

C++ source for the implementations of the com.sun.star.script.provider.*
and com.sun.star.script.browse.* UNO types. These types are used for
browsing and executing scripts.

- source/protocolhandler

C++ for a ProtocolHandler implementation that handles vnd.sun.star.script
URIs and dispatches them for execution to the Scripting Framework.

- source/basprov

C++ implementation of the LanguageScriptProvider UNO service for Basic

- source/dlgprov

C++ implementation of the DialogProvider UNO service used for loading
UNO dialogs from various languages

- source/pyprov

LanguageScriptProvider for Python

- java/com/sun/star/script/framework/provider

Implementation of an abstract base class ScriptProvider which provides
core methods for implementing Java based LanguageScriptProvider implementations

- java/com/sun/star/script/framework/provider/*

BeanShell, JavaScript and Java LanguageScriptProvider implementations

- java/com/sun/star/script/framework/browse/*

BrowseNode implementations for the Java based LanguageScriptProviders

- java/com/sun/star/script/framework/io
- java/com/sun/star/script/framework/container

Classes for performing script IO

- examples

Example scripts in BeanShell, JavaScript, Java and Python


== Deprecated Code ==

- java/org/openoffice/*

Support for developing scripts in IDEs such as NetBeans.