summaryrefslogtreecommitdiff
path: root/bridges
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2008-10-01 09:04:58 +0000
committerVladimir Glazounov <vg@openoffice.org>2008-10-01 09:04:58 +0000
commit3b2b8f91ff22b93050b9b1aa3da5bd4359182499 (patch)
tree3e37aa664496da562640735b168da4dcc08bb737 /bridges
parent257b3205cae2665a96492b806df10faf884a4e99 (diff)
CWS-TOOLING: integrate CWS sb93
Diffstat (limited to 'bridges')
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/call.s13
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.cxx52
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.hxx10
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/makefile.mk5
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/doflushcode.hxx39
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/doflushcode.s42
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.cxx50
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.hxx10
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/makefile.mk4
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_intel/except.cxx3
-rw-r--r--bridges/source/remote/urp/urp_dispatch.cxx4
-rw-r--r--bridges/source/remote/urp/urp_environment.cxx22
-rw-r--r--bridges/source/remote/urp/urp_propertyobject.cxx9
-rw-r--r--bridges/source/remote/urp/urp_reader.cxx3
-rw-r--r--bridges/source/remote/urp/urp_reader.hxx11
-rw-r--r--bridges/source/remote/urp/urp_writer.cxx7
-rw-r--r--bridges/source/remote/urp/urp_writer.hxx4
-rw-r--r--bridges/test/java_uno/any/TestAny.java12
18 files changed, 53 insertions, 247 deletions
diff --git a/bridges/source/cpp_uno/cc50_solaris_sparc/call.s b/bridges/source/cpp_uno/cc50_solaris_sparc/call.s
index c328160927c8..be4027fda070 100644
--- a/bridges/source/cpp_uno/cc50_solaris_sparc/call.s
+++ b/bridges/source/cpp_uno/cc50_solaris_sparc/call.s
@@ -1,16 +1,3 @@
-.global doFlushCode
-.type doFlushCode,2
-doFlushCode:
-.L: flush %o0
- deccc %o1
- bne .L
- add %o0, 8, %o0
- retl
- nop
-.size doFlushCode,(.-doFlushCode)
-.align 8
-
-
.global privateSnippetExecutor
.type privateSnippetExecutor,2
privateSnippetExecutor:
diff --git a/bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.cxx b/bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.cxx
index 211147f8e49f..e69de29bb2d1 100644
--- a/bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.cxx
+++ b/bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.cxx
@@ -1,52 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: flushcode.cxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_bridges.hxx"
-
-#include "sal/config.h"
-
-#include "flushcode.hxx"
-
-extern "C" void doFlushCode(unsigned long address, unsigned long count);
-
-namespace bridges { namespace cpp_uno { namespace cc50_solaris_sparc {
-
-void flushCode(void const * begin, void const * end) {
- unsigned long n =
- static_cast< char const * >(end) - static_cast< char const * >(begin);
- if (n != 0) {
- unsigned long adr = reinterpret_cast< unsigned long >(begin);
- unsigned long off = adr & 7;
- doFlushCode(adr - off, (n + off + 7) >> 3);
- }
-}
-
-} } }
diff --git a/bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.hxx b/bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.hxx
index 11b7d18b119d..2945bd3648d6 100644
--- a/bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.hxx
+++ b/bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.hxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: flushcode.hxx,v $
- * $Revision: 1.4 $
+ * $Revision: 1.4.20.1 $
*
* This file is part of OpenOffice.org.
*
@@ -33,12 +33,18 @@
#include "sal/config.h"
+extern "C" void sync_instruction_memory(caddr_t addr, int len); // from libc
+
namespace bridges { namespace cpp_uno { namespace cc50_solaris_sparc {
/**
* Flush a region of memory into which code has been written dynamically.
*/
-void flushCode(void const * begin, void const * end);
+inline void flushCode(void const * begin, void const * end) {
+ sync_instruction_memory(
+ static_cast< caddr_t >(const_cast< void * >(begin)),
+ static_cast< char const * >(end) - static_cast< char const * >(begin));
+}
} } }
diff --git a/bridges/source/cpp_uno/cc50_solaris_sparc/makefile.mk b/bridges/source/cpp_uno/cc50_solaris_sparc/makefile.mk
index ee3c69d70ce4..2e569d4f008f 100644
--- a/bridges/source/cpp_uno/cc50_solaris_sparc/makefile.mk
+++ b/bridges/source/cpp_uno/cc50_solaris_sparc/makefile.mk
@@ -8,7 +8,7 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.17 $
+# $Revision: 1.17.12.1 $
#
# This file is part of OpenOffice.org.
#
@@ -58,8 +58,7 @@ SLOFILES= \
$(SLO)$/cpp2uno.obj \
$(SLO)$/uno2cpp.obj \
$(SLO)$/except.obj \
- $(SLO)$/call.obj \
- $(SLO)$/flushcode.obj
+ $(SLO)$/call.obj
SHL1TARGET= $(TARGET)
diff --git a/bridges/source/cpp_uno/cc5_solaris_sparc64/doflushcode.hxx b/bridges/source/cpp_uno/cc5_solaris_sparc64/doflushcode.hxx
index f21c82e3ba2b..e69de29bb2d1 100644
--- a/bridges/source/cpp_uno/cc5_solaris_sparc64/doflushcode.hxx
+++ b/bridges/source/cpp_uno/cc5_solaris_sparc64/doflushcode.hxx
@@ -1,39 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: doflushcode.hxx,v $
- *
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef INCLUDED_BRIDGES_SOURCE_CPP_UNO_CC5_SOLARIS_SPARC64_DOFLUSHCODE_HXX
-#define INCLUDED_BRIDGES_SOURCE_CPP_UNO_CC5_SOLARIS_SPARC64_DOFLUSHCODE_HXX
-
-#include "sal/config.h"
-
-extern "C" void doFlushCode(unsigned long address, unsigned long count);
-
-#endif
diff --git a/bridges/source/cpp_uno/cc5_solaris_sparc64/doflushcode.s b/bridges/source/cpp_uno/cc5_solaris_sparc64/doflushcode.s
index 9f7ab2ec0b0d..e69de29bb2d1 100644
--- a/bridges/source/cpp_uno/cc5_solaris_sparc64/doflushcode.s
+++ b/bridges/source/cpp_uno/cc5_solaris_sparc64/doflushcode.s
@@ -1,42 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: doflushcode.s,v $
- *
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-.global doFlushCode
-.align 8
-doFlushCode:
- flush %o0
- deccc %o1
- bne,pt %xcc, doFlushCode
- add %o0, 8, %o0
- retl
- nop
-.size doFlushCode, . - doFlushCode
-.type doFlushCode, #function
diff --git a/bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.cxx b/bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.cxx
index 92096de85162..e69de29bb2d1 100644
--- a/bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.cxx
+++ b/bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.cxx
@@ -1,50 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: flushcode.cxx,v $
- *
- * $Revision: 1.3 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "precompiled_bridges.hxx"
-#include "sal/config.h"
-
-#include "doflushcode.hxx"
-#include "flushcode.hxx"
-
-namespace bridges { namespace cpp_uno { namespace cc5_solaris_sparc64 {
-
-void flushCode(void const * begin, void const * end) {
- unsigned long n =
- static_cast< char const * >(end) - static_cast< char const * >(begin);
- if (n != 0) {
- unsigned long adr = reinterpret_cast< unsigned long >(begin);
- unsigned long off = adr & 7;
- doFlushCode(adr - off, (n + off + 7) >> 3);
- }
-}
-
-} } }
diff --git a/bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.hxx b/bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.hxx
index fdfe65016457..ac87b8200c30 100644
--- a/bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.hxx
+++ b/bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.hxx
@@ -8,7 +8,7 @@
*
* $RCSfile: flushcode.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.3.18.1 $
*
* This file is part of OpenOffice.org.
*
@@ -34,12 +34,18 @@
#include "sal/config.h"
+extern "C" void sync_instruction_memory(caddr_t addr, int len); // from libc
+
namespace bridges { namespace cpp_uno { namespace cc5_solaris_sparc64 {
/**
* Flush a region of memory into which code has been written dynamically.
*/
-void flushCode(void const * begin, void const * end);
+inline void flushCode(void const * begin, void const * end) {
+ sync_instruction_memory(
+ static_cast< caddr_t >(const_cast< void * >(begin)),
+ static_cast< char const * >(end) - static_cast< char const * >(begin));
+}
} } }
diff --git a/bridges/source/cpp_uno/cc5_solaris_sparc64/makefile.mk b/bridges/source/cpp_uno/cc5_solaris_sparc64/makefile.mk
index 94efd7253a2a..f1f98f32ca7d 100644
--- a/bridges/source/cpp_uno/cc5_solaris_sparc64/makefile.mk
+++ b/bridges/source/cpp_uno/cc5_solaris_sparc64/makefile.mk
@@ -8,7 +8,7 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.4 $
+# $Revision: 1.4.12.1 $
#
# This file is part of OpenOffice.org.
#
@@ -42,9 +42,7 @@ SHL1TARGET = $(TARGET)
SHL1OBJS = \
$(SLO)$/callvirtualmethod.obj \
$(SLO)$/cpp2uno.obj \
- $(SLO)$/doflushcode.obj \
$(SLO)$/exceptions.obj \
- $(SLO)$/flushcode.obj \
$(SLO)$/fp.obj \
$(SLO)$/isdirectreturntype.obj \
$(SLO)$/uno2cpp.obj \
diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx b/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
index 5b45ff65a806..a804fd17addc 100644
--- a/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_intel/except.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: except.cxx,v $
- * $Revision: 1.14 $
+ * $Revision: 1.14.20.1 $
*
* This file is part of OpenOffice.org.
*
@@ -32,6 +32,7 @@
#include "precompiled_bridges.hxx"
#include <stdio.h>
+#include <string.h>
#include <dlfcn.h>
#include <cxxabi.h>
#include <hash_map>
diff --git a/bridges/source/remote/urp/urp_dispatch.cxx b/bridges/source/remote/urp/urp_dispatch.cxx
index b8b224d34bb7..c5ba6a93140d 100644
--- a/bridges/source/remote/urp/urp_dispatch.cxx
+++ b/bridges/source/remote/urp/urp_dispatch.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: urp_dispatch.cxx,v $
- * $Revision: 1.17 $
+ * $Revision: 1.17.20.1 $
*
* This file is part of OpenOffice.org.
*
@@ -74,8 +74,6 @@ void SAL_CALL urp_sendCloseConnection( uno_Environment *pEnvRemote )
}
pImpl->m_pWriter->sendEmptyMessage();
- // no more data via this connection !
- pImpl->m_pWriter->abort();
}
}
extern "C" void SAL_CALL urp_sendRequest(
diff --git a/bridges/source/remote/urp/urp_environment.cxx b/bridges/source/remote/urp/urp_environment.cxx
index 3b1278946607..5d1c4b9ab741 100644
--- a/bridges/source/remote/urp/urp_environment.cxx
+++ b/bridges/source/remote/urp/urp_environment.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: urp_environment.cxx,v $
- * $Revision: 1.21 $
+ * $Revision: 1.21.20.2 $
*
* This file is part of OpenOffice.org.
*
@@ -212,8 +212,6 @@ void SAL_CALL allThreadsAreGone( uno_Environment * pEnvRemote )
}
else
{
- ::osl::MutexGuard guard( pImpl->m_disposingMutex );
-
pImpl->m_cndWaitForThreads.set();
}
@@ -278,7 +276,9 @@ static void SAL_CALL RemoteEnvironment_thisDispose( uno_Environment *pEnvRemote
// close the connection
- urp_sendCloseConnection( pEnvRemote );
+ uno_threadpool_dispose( pImpl->m_hThreadPool );
+ pImpl->m_pWriter->abortThread();
+ pContext->m_pConnection->close( pContext->m_pConnection );
if( osl_getThreadIdentifier(0) ==
(oslThreadIdentifier) pImpl->m_pReader->getIdentifier() )
@@ -286,6 +286,7 @@ static void SAL_CALL RemoteEnvironment_thisDispose( uno_Environment *pEnvRemote
// This is the reader thread. Let the thread destroy itself
// the reader thread object must also release the connection at this stage !
pImpl->m_pReader->destroyYourself();
+ pImpl->m_pReader = 0;
}
else
{
@@ -295,11 +296,6 @@ static void SAL_CALL RemoteEnvironment_thisDispose( uno_Environment *pEnvRemote
pImpl->m_pReader->join();
}
- // from now on, no calls can be delivered via the bridge
- uno_threadpool_dispose( pImpl->m_hThreadPool );
-
- pContext->m_pConnection->close( pContext->m_pConnection );
-
// wait for the writer thread
pImpl->m_pWriter->join();
@@ -309,7 +305,6 @@ static void SAL_CALL RemoteEnvironment_thisDispose( uno_Environment *pEnvRemote
if( 0 != pImpl->m_nRemoteThreads )
{
// Wait for all threads
- pImpl->m_cndWaitForThreads.reset();
guard.clear();
pImpl->m_cndWaitForThreads.wait();
OSL_ASSERT( ! pImpl->m_nRemoteThreads );
@@ -333,13 +328,12 @@ static void SAL_CALL RemoteEnvironment_thisDispose( uno_Environment *pEnvRemote
delete pImpl->m_pWriter;
pImpl->m_pWriter = 0;
- if( osl_getThreadIdentifier(0) !=
- (oslThreadIdentifier) pImpl->m_pReader->getIdentifier() )
+ if( pImpl->m_pReader != 0 )
{
// This is not the reader thread, so the thread object is deleted
delete pImpl->m_pReader;
+ pImpl->m_pReader = 0;
}
- pImpl->m_pReader = 0;
// delete the stubs
releaseStubs( pEnvRemote );
@@ -358,6 +352,7 @@ static void SAL_CALL RemoteEnvironment_thisDisposing(
if( ! pImpl->m_bDisposed )
{
guard.clear();
+ urp_sendCloseConnection( pEnvRemote );
RemoteEnvironment_thisDispose( pEnvRemote );
}
}
@@ -417,7 +412,6 @@ void SAL_CALL uno_initEnvironment( uno_Environment * pEnvRemote )
// take the bridgepointer as id
pImpl->m_properties.seqBridgeID = ByteSequence( (sal_Int8*)&pEnvRemote , sizeof( pEnvRemote ) );
- pImpl->m_cndWaitForThreads.reset();
pImpl->m_allThreadsAreGone = allThreadsAreGone;
pImpl->m_sendRequest = urp_sendRequest;
pImpl->m_nRemoteThreads = 0;
diff --git a/bridges/source/remote/urp/urp_propertyobject.cxx b/bridges/source/remote/urp/urp_propertyobject.cxx
index 4f4f52ec0d46..fa5fd4252490 100644
--- a/bridges/source/remote/urp/urp_propertyobject.cxx
+++ b/bridges/source/remote/urp/urp_propertyobject.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: urp_propertyobject.cxx,v $
- * $Revision: 1.11 $
+ * $Revision: 1.11.20.1 $
*
* This file is part of OpenOffice.org.
*
@@ -32,7 +32,6 @@
#include "precompiled_bridges.hxx"
#include <stdlib.h>
#include <osl/diagnose.h>
-#include <osl/process.h>
#include <rtl/random.h>
@@ -494,14 +493,8 @@ sal_Int32 SAL_CALL PropertyObject::localRequestChange( )
if( bCall )
{
- // gather some more random data
- oslProcessInfo data;
- data.Size = sizeof( data );
- osl_getProcessInfo( 0 , osl_Process_HEAPUSAGE | osl_Process_IDENTIFIER , &data );
-
// calulate random number
rtlRandomPool pool = rtl_random_createPool ();
- rtl_random_addBytes( pool, &data , sizeof( data ) );
rtl_random_getBytes( pool , &m_nRandomNumberOfRequest, sizeof( m_nRandomNumberOfRequest ) );
rtl_random_destroyPool( pool );
}
diff --git a/bridges/source/remote/urp/urp_reader.cxx b/bridges/source/remote/urp/urp_reader.cxx
index 5a7644d39b17..dd9ff0af80ec 100644
--- a/bridges/source/remote/urp/urp_reader.cxx
+++ b/bridges/source/remote/urp/urp_reader.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: urp_reader.cxx,v $
- * $Revision: 1.18 $
+ * $Revision: 1.18.20.1 $
*
* This file is part of OpenOffice.org.
*
@@ -298,7 +298,6 @@ inline sal_Bool OReaderThread::readBlock( sal_Int32 *pnMessageCount )
s.append( sal_Unicode( ')' ) );
m_pBridgeImpl->addError( s.makeStringAndClear() );
OSL_ENSURE( 0 , "urp bridge: Packet-size too big" );
- disposeEnvironment();
return sal_False;
}
diff --git a/bridges/source/remote/urp/urp_reader.hxx b/bridges/source/remote/urp/urp_reader.hxx
index eee5fd9e26f1..9cb36e629c07 100644
--- a/bridges/source/remote/urp/urp_reader.hxx
+++ b/bridges/source/remote/urp/urp_reader.hxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: urp_reader.hxx,v $
- * $Revision: 1.7 $
+ * $Revision: 1.7.20.1 $
*
* This file is part of OpenOffice.org.
*
@@ -49,16 +49,17 @@ public:
OWriterThread *pWriterThread );
~OReaderThread();
- virtual void SAL_CALL run();
- virtual void SAL_CALL onTerminated();
-
// may only be called in the callstack of this thread !!!!!
// run() -> disposeEnvironment() -> dispose() -> destroyYourself()
void destroyYourself();
+private:
+ virtual void SAL_CALL run();
+ virtual void SAL_CALL onTerminated();
+
inline sal_Bool readBlock( sal_Int32 *pnMessageCount );
inline sal_Bool readFlags( struct MessageFlags *pFlags );
-private:
+
void disposeEnvironment();
inline sal_Bool getMemberTypeDescription(
diff --git a/bridges/source/remote/urp/urp_writer.cxx b/bridges/source/remote/urp/urp_writer.cxx
index eed2c3612ec5..248be6c37098 100644
--- a/bridges/source/remote/urp/urp_writer.cxx
+++ b/bridges/source/remote/urp/urp_writer.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: urp_writer.cxx,v $
- * $Revision: 1.17 $
+ * $Revision: 1.17.20.1 $
*
* This file is part of OpenOffice.org.
*
@@ -111,7 +111,7 @@ void OWriterThread::touch( sal_Bool bImmediately )
}
-void OWriterThread::abort()
+void OWriterThread::abortThread()
{
MutexGuard guard( m_pBridgeImpl->m_marshalingMutex );
@@ -150,10 +150,7 @@ void OWriterThread::sendEmptyMessage()
{
// must be called with locked marshaling mutex
sal_Int32 a[2] = {0,0};
- if( m_pConnection )
- {
m_pConnection->write( m_pConnection , (sal_Int8*) a , sizeof( sal_Int32) *2 );
- }
}
void OWriterThread::insertReleaseRemoteCall(
diff --git a/bridges/source/remote/urp/urp_writer.hxx b/bridges/source/remote/urp/urp_writer.hxx
index 34c867660343..f5cafe261280 100644
--- a/bridges/source/remote/urp/urp_writer.hxx
+++ b/bridges/source/remote/urp/urp_writer.hxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: urp_writer.hxx,v $
- * $Revision: 1.7 $
+ * $Revision: 1.7.20.1 $
*
* This file is part of OpenOffice.org.
*
@@ -63,7 +63,7 @@ namespace bridges_urp
void touch( sal_Bool bImmediately );
void sendEmptyMessage();
- void abort();
+ void abortThread();
void SAL_CALL insertReleaseRemoteCall (
rtl_uString *pOid,typelib_TypeDescriptionReference *pTypeRef);
diff --git a/bridges/test/java_uno/any/TestAny.java b/bridges/test/java_uno/any/TestAny.java
index 3913fe8eba4b..ec9ac5fb4162 100644
--- a/bridges/test/java_uno/any/TestAny.java
+++ b/bridges/test/java_uno/any/TestAny.java
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: TestAny.java,v $
- * $Revision: 1.5 $
+ * $Revision: 1.5.20.1 $
*
* This file is part of OpenOffice.org.
*
@@ -2044,6 +2044,16 @@ final class TestAny {
new DerivedInterface() {}),
new CompareBoxed());
+ // Misc:
+ try {
+ transport.mapAny(new Object());
+ System.out.println("BAD mapAny(Object), no exception");
+ success = false;
+ } catch (StackOverflowError e) {
+ System.out.println("BAD mapAny(Object): " + e);
+ success = false;
+ } catch (RuntimeException e) {}
+
return success;
}