[Libreoffice-commits] core.git: cppu/qa idlc/CustomTarget_parser_test.mk idlc/inc idlc/source idlc/test offapi/com offapi/type_reference udkapi/com
Stephan Bergmann
sbergman at redhat.com
Wed Apr 3 02:31:46 PDT 2013
cppu/qa/cppumaker/types.idl | 2
idlc/CustomTarget_parser_test.mk | 5 +
idlc/inc/idlc/astservice.hxx | 9 +++
idlc/source/parser.y | 3 -
idlc/test/parser/oldstyle.tests | 28 ++++++++++
offapi/com/sun/star/script/vba/VBASpreadsheetEventProcessor.idl | 4 -
offapi/com/sun/star/script/vba/VBATextEventProcessor.idl | 4 -
offapi/com/sun/star/sdb/Query.idl | 4 -
offapi/type_reference/types.rdb |binary
udkapi/com/sun/star/loader/Java2.idl | 8 +-
10 files changed, 55 insertions(+), 12 deletions(-)
New commits:
commit ce2991ee863e2e5faef95462242552515e1cf89c
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Wed Apr 3 11:30:06 2013 +0200
Forbid old-style services/singletons inheriting new-style services
...does not make sense. Adapted some old-style services accordingly, where the
inherited service had been changed to new-style after the fact.
Change-Id: I5f3e4ddf99160778a319062a6c84f83529ff177b
diff --git a/cppu/qa/cppumaker/types.idl b/cppu/qa/cppumaker/types.idl
index da5aa8f..2c0a055 100644
--- a/cppu/qa/cppumaker/types.idl
+++ b/cppu/qa/cppumaker/types.idl
@@ -181,7 +181,7 @@ service S2: XTest;
service S3 { interface XTest; };
-singleton S4 { service S2; };
+singleton S4 { service S3; };
module services {
diff --git a/idlc/CustomTarget_parser_test.mk b/idlc/CustomTarget_parser_test.mk
index 1c3e44b..6be490a 100644
--- a/idlc/CustomTarget_parser_test.mk
+++ b/idlc/CustomTarget_parser_test.mk
@@ -51,6 +51,11 @@ $(call gb_CustomTarget_get_target,idlc/parser_test) : \
-O $(call gb_CustomTarget_get_workdir,idlc/parser_test) \
-stdin && \
$(PERL) $(SRCDIR)/solenv/bin/exectest.pl \
+ $(SRCDIR)/idlc/test/parser/oldstyle.tests \
+ $(call gb_Executable_get_command,idlc) \
+ -O $(call gb_CustomTarget_get_workdir,idlc/parser_test) \
+ -stdin && \
+ $(PERL) $(SRCDIR)/solenv/bin/exectest.pl \
$(SRCDIR)/idlc/test/parser/polystruct.tests \
$(call gb_Executable_get_command,idlc) \
-O $(call gb_CustomTarget_get_workdir,idlc/parser_test) \
diff --git a/idlc/inc/idlc/astservice.hxx b/idlc/inc/idlc/astservice.hxx
index 6760462..d3e0b64 100644
--- a/idlc/inc/idlc/astservice.hxx
+++ b/idlc/inc/idlc/astservice.hxx
@@ -29,22 +29,31 @@ public:
AstService(const ::rtl::OString& name, AstScope* pScope)
: AstDeclaration(NT_service, name, pScope)
, AstScope(NT_service)
+ , m_singleInterfaceBasedService(false)
, m_defaultConstructor(false)
{}
AstService(const NodeType type, const ::rtl::OString& name, AstScope* pScope)
: AstDeclaration(type, name, pScope)
, AstScope(type)
+ , m_singleInterfaceBasedService(false)
, m_defaultConstructor(false)
{}
virtual ~AstService() {}
virtual sal_Bool dump(RegistryKey& rKey);
+ void setSingleInterfaceBasedService()
+ { m_singleInterfaceBasedService = true; }
+
void setDefaultConstructor(bool b) { m_defaultConstructor = b; }
+ bool isSingleInterfaceBasedService() const
+ { return m_singleInterfaceBasedService; }
+
bool checkLastConstructor() const;
private:
+ bool m_singleInterfaceBasedService;
bool m_defaultConstructor;
};
diff --git a/idlc/source/parser.y b/idlc/source/parser.y
index 8729a63..e338e57 100644
--- a/idlc/source/parser.y
+++ b/idlc/source/parser.y
@@ -1707,7 +1707,7 @@ service_export :
pDecl = pScope->lookupByName(*iter);
if ( pDecl && (pDecl->getNodeType() == NT_service) )
{
- if ( pScope->getScopeNodeType() == NT_singleton && pScope->nMembers() > 0 )
+ if ( static_cast< AstService * >(pDecl)->isSingleInterfaceBasedService() || pScope->getScopeNodeType() == NT_singleton && pScope->nMembers() > 0 )
idlc()->error()->error0(EIDL_ILLEGAL_ADD);
else if ( idlc()->error()->checkPublished(pDecl) )
{
@@ -1907,6 +1907,7 @@ service_interface_dfn:
{
AstService * s = static_cast< AstService * >(idlc()->scopes()->top());
if (s != 0) {
+ s->setSingleInterfaceBasedService();
s->setDefaultConstructor(!$4);
}
}
diff --git a/idlc/test/parser/oldstyle.tests b/idlc/test/parser/oldstyle.tests
new file mode 100644
index 0000000..c6692b9
--- /dev/null
+++ b/idlc/test/parser/oldstyle.tests
@@ -0,0 +1,28 @@
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+EXPECT SUCCESS "oldstyle.tests 1":
+service S1 {};
+service S2 { service S1; };
+
+
+EXPECT FAILURE "oldstyle.tests 2":
+interface X {};
+service S1: X;
+service S2 { service S1; };
+
+
+EXPECT SUCCESS "oldstyle.tests 3":
+service S1 {};
+singleton S2 { service S1; };
+
+
+EXPECT FAILURE "oldstyle.tests 4":
+interface X {};
+service S1: X;
+singleton S2 { service S1; };
diff --git a/offapi/com/sun/star/script/vba/VBASpreadsheetEventProcessor.idl b/offapi/com/sun/star/script/vba/VBASpreadsheetEventProcessor.idl
index 6cb61f5..ac306b0 100644
--- a/offapi/com/sun/star/script/vba/VBASpreadsheetEventProcessor.idl
+++ b/offapi/com/sun/star/script/vba/VBASpreadsheetEventProcessor.idl
@@ -20,7 +20,7 @@
#ifndef __com_sun_star_script_vba_VBASpreadsheetEventProcessor_idl__
#define __com_sun_star_script_vba_VBASpreadsheetEventProcessor_idl__
-#include <com/sun/star/script/vba/VBAEventProcessor.idl>
+#include <com/sun/star/script/vba/XVBAEventProcessor.idl>
module com { module sun { module star { module script { module vba {
@@ -28,7 +28,7 @@ module com { module sun { module star { module script { module vba {
service VBASpreadsheetEventProcessor
{
- service VBAEventProcessor;
+ interface XVBAEventProcessor;
};
diff --git a/offapi/com/sun/star/script/vba/VBATextEventProcessor.idl b/offapi/com/sun/star/script/vba/VBATextEventProcessor.idl
index 2535831..816163f 100644
--- a/offapi/com/sun/star/script/vba/VBATextEventProcessor.idl
+++ b/offapi/com/sun/star/script/vba/VBATextEventProcessor.idl
@@ -20,7 +20,7 @@
#ifndef __com_sun_star_script_vba_VBATextEventProcessor_idl__
#define __com_sun_star_script_vba_VBATextEventProcessor_idl__
-#include <com/sun/star/script/vba/VBAEventProcessor.idl>
+#include <com/sun/star/script/vba/XVBAEventProcessor.idl>
module com { module sun { module star { module script { module vba {
@@ -28,7 +28,7 @@ module com { module sun { module star { module script { module vba {
service VBATextEventProcessor
{
- service VBAEventProcessor;
+ interface XVBAEventProcessor;
};
diff --git a/offapi/com/sun/star/sdb/Query.idl b/offapi/com/sun/star/sdb/Query.idl
index 38f97e3..13cc935 100644
--- a/offapi/com/sun/star/sdb/Query.idl
+++ b/offapi/com/sun/star/sdb/Query.idl
@@ -29,7 +29,7 @@
#include <com/sun/star/sdb/DataSettings.idl>
-#include <com/sun/star/sdb/QueryDefinition.idl>
+#include <com/sun/star/sdb/XQueryDefinition.idl>
module com { module sun { module star { module sdb {
@@ -47,7 +47,7 @@ published service Query
/** defines the command of the query.
*/
- service com::sun::star::sdb::QueryDefinition;
+ interface com::sun::star::sdb::XQueryDefinition;
/** is used for customization of data appearance.
diff --git a/offapi/type_reference/types.rdb b/offapi/type_reference/types.rdb
index b0c2c88..dd39969 100644
Binary files a/offapi/type_reference/types.rdb and b/offapi/type_reference/types.rdb differ
diff --git a/udkapi/com/sun/star/loader/Java2.idl b/udkapi/com/sun/star/loader/Java2.idl
index 49553b7..6e34177 100644
--- a/udkapi/com/sun/star/loader/Java2.idl
+++ b/udkapi/com/sun/star/loader/Java2.idl
@@ -19,8 +19,7 @@
#ifndef __com_sun_star_loader_Java2_idl__
#define __com_sun_star_loader_Java2_idl__
-#include <com/sun/star/loader/Java.idl>
-
+#include <com/sun/star/loader/XImplementationLoader.idl>
module com { module sun { module star { module loader {
/**the same as <type scope="com::sun::star::loader">Java</type>.
@@ -28,11 +27,12 @@ module com { module sun { module star { module loader {
<type scope="com::sun::star::loader">Java</type> service was intended for
UNO 2 components. Since UNO 2 is not supported anymore, the service
name is reused again.
+
+ @deprecated
*/
published service Java2
{
- service Java;
-
+ interface XImplementationLoader;
};
More information about the Libreoffice-commits
mailing list