New branch 'private/swe/libreoffice-5-2+backports' available with the following commits: commit 1769a9a5886f2780cdd35ccb62fb28dd96766d3f Author: Michael Stahl <mst...@redhat.com> Date: Thu Jan 19 13:54:57 2017 +0100
framework: AutoRecovery uses Timer without SolarMutex This results in a SolarMutex assert when creating a new Base document. ... and also implts_startListening() is looking less thread safe than advertised. Conflicts: framework/source/services/autorecovery.cxx Change-Id: I4635064733c16416f903dab4caee59fb2de3cb00 commit db28c5a29dd0d3900ae3ffa3bcd966b07a578f39 Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> Date: Thu Aug 3 10:27:36 2017 +0200 These TaskPriorities are no longer available So just use default priority. This was not covered by the conversion because of differences between master and 5.2. Change-Id: Ia2c9a196988d4c71b545266b87e4bcd00b43ca72 commit 16f2c3988f66593978d2c88d532e842e0f57efea Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Tue Jul 4 17:15:14 2017 +0200 tdf#108873 fix merge data handling in fields This is a regression from tdf#70346 / commit 4851cde7b98226b0f82ae2b191c290173e9b06c6 It added the whole DB row as variables to the SwCalc hash set. This works correct for conditionals when hiding sections, but not for conditionals used in fields - actually they break. Previously the field would do a fallback to query the DB again, if no variable was in the dict and the only possible variables in the dict could have been user-defined fields. This handles the added variables correctly for fields. Also fixes a bug to store the DB number values as number variables and adds the record number, as SwCalc::VarLook does. Reviewed-on: https://gerrit.libreoffice.org/39509 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> Conflicts: sw/inc/calc.hxx Change-Id: Ib0dbeda68234e671768ede55b2012235a3680276 commit 323f572ce9930943a1ff989290ff5923b6bfc3b7 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Mon Jul 31 19:49:34 2017 +0200 tdf#109997 WIN don't post a callback event directly I doesn't seem possible to post an event deterministically to the end of the Windows message queue and then process this queued events "in order". PeekMessage and now even DispatchMessage process events out of order - that's how this assert was hit. I was quite sure it would not hit, but a simple resize proved me wrong. And the assert just proved that all my assumptions were wrong :-( So this gives up the whole idea of a short-circuit message queue handling on Windows for busy processing of LO Idles and goes back to some kind of the original "always timer" implementation. Since the "parallel" processing of LO events after system messages during DoYield was dropped, this might be slower; or not. In the end this simplifies the main loop almost to the starting point, except for a little busy loop, if we wait for an Idle event timer - not so busy acually, as we just switch to another local thread, which hopefully is our idle timer waiting to fire. A short-circuit with a little detour. Change-Id: Id63a2a9e2a3b1501ad50a2c6f308a36efe55e68f commit 8a14c12eb7ec0dea73cef08268e223185615d8e4 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Fri Jul 28 19:55:03 2017 +0200 GEN fix timeout result handling The GEN VCL backend simply ignored the result of the timeout. Change-Id: I0c1b34927ba97886cf11b2c2a203c3e82d851dc9 commit 760a66f667d0442f428070ec36056bc5c426707d Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Fri Jul 28 19:39:25 2017 +0200 Fix scheduler GDB pretty printer mbDelete is gone, as we simply check for mpTask. Change-Id: I9d451f2445fb6b978d177b45d75abde2595c5fac commit 916e59c86c013d613c0bdb1e32bcf60f6410bb60 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Tue Jul 25 11:32:21 2017 +0200 WIN don't process the SendMessage from DoYield Actually we just want to remove the SAL_MSG_TIMER_CALLBACK messages, but this seems to be impossible using PeekMessage, without the side effect of processing some messages: "During this call, the system delivers pending, nonqueued messages... Then the first queued message that matches the specified filter is retrieved.". But it is actually enought to ignore the SAL_MSG_THREADYIELD message send using SendMessage from DoYield, which can be filtered by using PM_QS_POSTMESSAGE. Probably this should be resolved not using PeekMessage at all by using a variable to hold the time of the last posted SAL_MSG_TIMER_CALLBACK message, so we just run the callback once, if our time is <= MSG time and ignore the multiple queued messages. Same for mbOnIdleRunScheduler handling. Change-Id: Ifacb20aa38e6b5aca908e5411cf2e100f702ad1f commit 8ce8ee1edd7377156b6bcfd4478a521feb1df28a Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Mon Jul 24 15:45:32 2017 +0200 WIN don't yield the scheduler in PeekMessage The scheduler is restarting the timer at the end of the most important task search. It uses PeekMessage PM_REMOVE to remove old SAL_MSG_TIMER_CALLBACK messages from the queue. Without PM_NOYIELD, in combination with an other thread yielding using SAL_MSG_THREADYIELD, this could re-start scheduling inside these PeekMessage calls, resulting in various assertions inside the scheduler code, most time due to the changed ascheduler list in "assert( pPrevSchedulerData->mpNext == pSchedulerData )". Change-Id: Ia96b6c0e06ffc3126b1428723b53f4b2112f8a5f commit c2bd18922a2e95d89c6dca915d9edcacd5b3ab04 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Mon Jul 24 15:41:32 2017 +0200 Add some const and fix some scheduler logging Change-Id: Id20767ff2be34a21896d3ce2b76f3944acdb1b77 commit 30bc7d0941ccc406f66338b8869e463acbf84ee3 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Thu Jul 20 15:49:45 2017 +0200 WIN use Reschedule instead of own dispatch loops Since we're filtering the wakeup timer event in the main dispatch loop, we should use Application::Reschedule in the Backend. Conflicts: vcl/win/gdi/salprn.cxx vcl/win/window/salframe.cxx Change-Id: Ie02c3533e8a6a7905281f129489e4f6f53f74692 commit 2acfde19c558a5db0be0dca368fa46e43595b5cb Author: Stephan Bergmann <sberg...@redhat.com> Date: Wed Jul 19 15:20:04 2017 +0200 SalInstance::DoYield: Don't drop SolarMutex when accessing user event queue <https://ci.libreoffice.org/job/lo_tb_master_linux_dbg/14468/console> fails with the assert in the OSL_DEBUG_LEVEL > 0 test code in Scheduler::ProcessEventsToIdle firing (see below), indicating that (even though the SolarMutex is locked one frame up in VCLXToolkit::processEventsToIdle), when Application::Reschedule(true) returned, there are unprocessed events in the queue. That failure is with the headless plugin, and looking at SvpSalInstance::DoYield, there was a window of time after m_aEventGuard has been released and before the SolarMutex has been re-acquired, where other threads could enqueue events. If Application::Reschedule(true) can thus not guarantee that the queue is empty when it returned, that would mean that the assert in Scheduler::ProcessEventsToIdle (introduced with c0710abfebd320903a3edb23d4b1441ea351b0be "Add some Scheduler unit tests and logging") is bogus. However, at least the two SalInstance::DoYield implementations SvpSalInstance::DoYield and AquaSalInstance::DoYield appear to have no reason in the first place to drop the SolarMutex when accessing the user event queue. So removing that dropping should make the assert in Scheduler::ProcessEventsToIdle faithful, at least for these two implementations. But I have no idea whether the other three implementations (X11SalInstance::DoYield in vcl/unx/generic/app/salinst.cxx, GtkInstance::DoYield in vcl/unx/gtk/gtkinst.cxx, and WinSalInstance::DoYield in vcl/win/app/salinst.cxx) have similar issues---i.e., whether everything is good after this change, whether those other implementations need similar changes, or whether ultimately Application::Reschedule(true) cannot guarantee the queue to be empty upon return (in which case the assert in Scheduler::ProcessEventsToIdle would need to go). > warn:vcl.schedule:27575:54:vcl/source/app/svapp.cxx:535: Unprocessed Idle: vcl::Window maPaintIdle > soffice.bin: /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/svapp.cxx:540: static void Scheduler::ProcessEventsToIdle(): Assertion `!bAnyIdle' failed. [...] > Thread 2 (Thread 0x2b12bf1e4a00 (LWP 27575)): > #0 0x00002b12bfb1a69d in poll () at /lib64/libc.so.6 > #1 0x00002b12ca9129e7 in SvpSalInstance::DoReleaseYield(int) (this=0x1be8b40, nTimeoutMS=5) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/headless/svpinst.cxx:392 > aPoll = {fd = 6, events = 1, revents = 0} > nAcquireCount = 1 > #2 0x00002b12ca9128c9 in SvpSalInstance::DoYield(bool, bool, unsigned long) (this=0x1be8b40, bWait=true, bHandleAllCurrentEvents=false, nReleased=0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/headless/svpinst.cxx:375 > nTimeoutMS = 5 > __PRETTY_FUNCTION__ = "virtual bool SvpSalInstance::DoYield(bool, bool, sal_uLong)" > aEvents = empty std::__debug::list > nAcquireCount = 1 > bEvent = false > #3 0x00002b12ca7a98cd in ImplYield(bool, bool, unsigned long) (i_bWait=true, i_bAllEvents=false, nReleased=0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/svapp.cxx:484 > pSVData = 0x2b12cb2a9e00 <rtl::Static<ImplSVData, (anonymous namespace)::private_aImplSVData>::get()::instance> > bProcessedEvent = false > #4 0x00002b12ca7a5796 in Application::Yield() () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/svapp.cxx:555 > #5 0x00002b12ca7a52f5 in Application::Execute() () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/svapp.cxx:461 > pSVData = 0x2b12cb2a9e00 <rtl::Static<ImplSVData, (anonymous namespace)::private_aImplSVData>::get()::instance> > #6 0x00002b12bf69c7e5 in desktop::Desktop::DoExecute() () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/desktop/source/app/app.cxx:1350 > #7 0x00002b12bf69d9c4 in desktop::Desktop::Main() (this=0x7fff49ea9ac0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/desktop/source/app/app.cxx:1735 > layer2 = {m_aEnvTypeName = "gcc3", m_xPreviousContext = uno::Reference to (desktop::DesktopContext *) 0x1bebdf8} > rCmdLineArgs = @0x2b12bfa2c6a0: {m_cwdUrl = boost::optional "file:///home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/workdir/JunitTest/sd_unoapi/user", m_minimized = false, m_invisible = false, m_norestore = true, m_headless = true, m_eventtesting = false, m_quickstart = false, m_noquickstart = true, m_terminateafterinit = false, m_nologo = true, m_nolockcheck = false, m_nodefault = false, m_help = false, m_writer = false, m_calc = false, m_draw = false, m_impress = false, m_global = false, m_math = false, m_web = false, m_base = false, m_helpwriter = false, m_helpcalc = false, m_helpdraw = false, m_helpbasic = false, m_helpmath = false, m_helpimpress = false, m_helpbase = false, m_version = false, m_splashpipe = false, m_textcat = false, m_scriptcat = false, m_safemode = false, m_unknown = "", m_bEmpty = false, m_bDocumentArgs = false, m_accept = std::__debug::vector of length 1, capacity 1 = {"pipe,name=oootest16264f8c-0bcc-4a4f-9c1b-52af72b78eb5;urp"}, m_unacc ept = std::__debug::vector of length 0, capacity 0, m_openlist = std::__debug::vector of length 0, capacity 0, m_viewlist = std::__debug::vector of length 0, capacity 0, m_startlist = std::__debug::vector of length 0, capacity 0, m_forceopenlist = std::__debug::vector of length 0, capacity 0, m_forcenewlist = std::__debug::vector of length 0, capacity 0, m_printlist = std::__debug::vector of length 0, capacity 0, m_printtolist = std::__debug::vector of length 0, capacity 0, m_printername = "", m_conversionlist = std::__debug::vector of length 0, capacity 0, m_conversionparams = "", m_conversionout = "", m_infilter = std::__debug::vector of length 0, capacity 0, m_language = "", m_pidfile = ""} > xRestartManager = uno::Reference to (comphelper::OOfficeRestartManager *) 0x29a7bf8 > layer = {m_aEnvTypeName = "gcc3", m_xPreviousContext = uno::Reference to (DesktopEnvironmentContext *) 0x1bebc38} > xContext = uno::Reference to (cppu::ComponentContext *) 0x1d200b0 > aOptions = {<utl::detail::Options> = {<utl::ConfigurationBroadcaster> = {_vptr.ConfigurationBroadcaster = 0x2b12c8a3dfb0 <vtable for SvtAccessibilityOptions+16>, mpList = std::unique_ptr<std::__debug::vector<utl::ConfigurationListener*, std::allocator<utl::ConfigurationListener*> >> containing 0x0, m_nBroadcastBlocked = 0, m_nBlockedHint = NONE}, <utl::ConfigurationListener> = {_vptr.ConfigurationListener = 0x2b12c8a3dfe8 <vtable for SvtAccessibilityOptions+72>}, <No data fields>}, <SfxListener> = {_vptr.SfxListener = 0x2b12c8a3e010 <vtable for SvtAccessibilityOptions+112>, mpImpl = std::unique_ptr<SfxListener::Impl> containing 0x2a46530}, static sm_pSingleImplConfig = 0x2a47e60, static sm_nAccessibilityRefCount = 16} > eStatus = desktop::Desktop::BS_OK > aUnknown = "" > inst_fin = desktop::userinstall::EXISTED > xDesktop = uno::Reference to (framework::Desktop *) 0x29cb3a8 > aAppearanceCfg = {<utl::ConfigItem> = {<utl::ConfigurationBroadcaster> = {_vptr.ConfigurationBroadcaster = 0x2b12c8a3e090 <vtable for SvtTabAppearanceCfg+16>, mpList = std::unique_ptr<std::__debug::vector<utl::ConfigurationListener*, std::allocator<utl::ConfigurationListener*> >> containing 0x0, m_nBroadcastBlocked = 0, m_nBlockedHint = NONE}, sSubTree = "Office.Common/View", m_xHierarchyAccess = uno::Reference to (configmgr::RootAccess *) 0x29ca3f8, xChangeLstnr = empty uno::Reference, m_nMode = DelayedUpdate, m_bIsModified = false, m_bEnableInternalNotification = false, m_nInValueChange = 0}, nDragMode = SystemDep, nSnapMode = NONE, nMiddleMouse = (unknown: 2), nAAMinPixelHeight = 8, bMenuMouseFollow = true, bFontAntialiasing = true, static bInitialized = true} > #8 0x00002b12ca7b33d0 in ImplSVMain() () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/svmain.cxx:194 > pSVData = 0x2b12cb2a9e00 <rtl::Static<ImplSVData, (anonymous namespace)::private_aImplSVData>::get()::instance> > nReturn = 1 > bInit = true > #9 0x00002b12ca7b3539 in SVMain() () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/svmain.cxx:232 > nRet = 0 > #10 0x00002b12bf6f1ff1 in soffice_main() () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/desktop/source/app/sofficemain.cxx:163 > bSuccess = true > aDesktop = {<Application> = {_vptr.Application = 0x2b12bfa269b0 <vtable for desktop::Desktop+16>}, m_rSplashScreen = empty uno::Reference, m_bCleanedExtensionCache = false, m_bServicesRegistered = true, m_aBootstrapError = desktop::Desktop::BE_OK, m_aBootstrapErrorMessage = "", m_aBootstrapStatus = desktop::Desktop::BS_OK, m_xLockfile = std::unique_ptr<desktop::Lockfile> containing 0x29c9b10, m_firstRunTimer = {<Task> = {_vptr.Task = 0x2b12cb2911b0 <vtable for Timer+16>, mpSchedulerData = 0x0, mpDebugName = 0x2b12bf777570 "desktop::Desktop m_firstRunTimer", mePriority = DEFAULT, mbActive = false}, maInvokeHandler = {function_ = 0x2b12bf6a2c6c <desktop::Desktop::LinkStubAsyncInitFirstRun(void*, Timer*)>, instance_ = 0x7fff49ea9ac0}, mnTimeout = 3000, mbAuto = false}, m_aUpdateThread = {_M_id = {_M_thread = 0}}, static pResMgr = 0x0} > rCmdLineArgs = @0x2b12bfa2c6a0: {m_cwdUrl = boost::optional "file:///home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/workdir/JunitTest/sd_unoapi/user", m_minimized = false, m_invisible = false, m_norestore = true, m_headless = true, m_eventtesting = false, m_quickstart = false, m_noquickstart = true, m_terminateafterinit = false, m_nologo = true, m_nolockcheck = false, m_nodefault = false, m_help = false, m_writer = false, m_calc = false, m_draw = false, m_impress = false, m_global = false, m_math = false, m_web = false, m_base = false, m_helpwriter = false, m_helpcalc = false, m_helpdraw = false, m_helpbasic = false, m_helpmath = false, m_helpimpress = false, m_helpbase = false, m_version = false, m_splashpipe = false, m_textcat = false, m_scriptcat = false, m_safemode = false, m_unknown = "", m_bEmpty = false, m_bDocumentArgs = false, m_accept = std::__debug::vector of length 1, capacity 1 = {"pipe,name=oootest16264f8c-0bcc-4a4f-9c1b-52af72b78eb5;urp"}, m_unacc ept = std::__debug::vector of length 0, capacity 0, m_openlist = std::__debug::vector of length 0, capacity 0, m_viewlist = std::__debug::vector of length 0, capacity 0, m_startlist = std::__debug::vector of length 0, capacity 0, m_forceopenlist = std::__debug::vector of length 0, capacity 0, m_forcenewlist = std::__debug::vector of length 0, capacity 0, m_printlist = std::__debug::vector of length 0, capacity 0, m_printtolist = std::__debug::vector of length 0, capacity 0, m_printername = "", m_conversionlist = std::__debug::vector of length 0, capacity 0, m_conversionparams = "", m_conversionout = "", m_infilter = std::__debug::vector of length 0, capacity 0, m_language = "", m_pidfile = ""} > aUnknown = "" > #11 0x0000000000400957 in sal_main () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/desktop/source/app/main.c:48 > ret = 0 > #12 0x000000000040093d in main (argc=8, argv=0x7fff49ea9df8) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/desktop/source/app/main.c:47 > ret = 0 > > Thread 1 (Thread 0x2b12e6862700 (LWP 11663)): > #0 0x00002b12bfa635f7 in raise () at /lib64/libc.so.6 > #1 0x00002b12bfa64ce8 in abort () at /lib64/libc.so.6 > #2 0x00002b12bf406165 in (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) (signal=6, info=0x2b12e68607f0, context=0x2b12e68606c0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/sal/osl/unx/signal.cxx:389 > act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0, sa_restorer = 0xe6860b90} > i = 5 > #3 0x00002b12bf406472 in (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*) (signal=6, info=0x2b12e68607f0, context=0x2b12e68606c0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/sal/osl/unx/signal.cxx:486 > act = {__sigaction_handler = {sa_handler = 0x2b12e68607e0, sa_sigaction = 0x2b12e68607e0}, sa_mask = {__val = {0, 18446744069414584320, 0, 0, 61329184, 47360176948768, 47356309405696, 0, 47356309405696, 47356309405696, 4294967295, 47356309405696, 0, 0, 47359528444352, 47360176950400}}, sa_flags = -72537977, sa_restorer = 0x2b12bfdea1c0 <_IO_2_1_stderr_>} > Info = {Signal = osl_Signal_AccessViolation, UserSignal = 6, UserData = 0x0} > #4 0x00002b12bfa63670 in <signal handler called> () at /lib64/libc.so.6 > #5 0x00002b12bfa635f7 in raise () at /lib64/libc.so.6 > #6 0x00002b12bfa64ce8 in abort () at /lib64/libc.so.6 > #7 0x00002b12bfa5c566 in __assert_fail_base () at /lib64/libc.so.6 > #8 0x00002b12bfa5c612 in () at /lib64/libc.so.6 > #9 0x00002b12ca7a56ba in Scheduler::ProcessEventsToIdle() () at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/vcl/source/app/svapp.cxx:540 > pSVData = 0x2b12cb2a9e00 <rtl::Static<ImplSVData, (anonymous namespace)::private_aImplSVData>::get()::instance> > bAnyIdle = true > __PRETTY_FUNCTION__ = "static void Scheduler::ProcessEventsToIdle()" > nSanity = 1 > pSchedulerData = 0x0 > #10 0x00002b12c8c8c554 in (anonymous namespace)::VCLXToolkit::processEventsToIdle() (this=0x3abc2a0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/toolkit/source/awt/vclxtoolkit.cxx:1897 > aSolarGuard = {m_solarMutex = @0x1be9610} > aZone = {m_sProfileId = 0x2b12c8e672a2 "processEvents", m_aCreateTime = 0} > #11 0x00002b12e317751d in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) (pThis=0x3abc2f0, nVtableIndex=9, pRegisterReturn=0x0, pReturnTypeRef=0x1c07390, bSimpleReturn=true, pStack=0x2b12e6861170, nStack=0, pGPR=0x2b12e68612d0, pFPR=0x2b12e6861300) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:133 > data = {pMethod = 47359678006708, pStack = 0x2b12e6861170, nStack = 0, pGPR = 0x2b12e68612d0, pFPR = 0x2b12e6861300, rax = 0, rdx = 47360176951616, xmm0 = 2.3399007939816937e-310, xmm1 = 3.0079874608688941e-316} > pMethod = 47359683834264 > #12 0x00002b12e317615c in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, typelib_TypeDescriptionReference*, sal_Int32, typelib_MethodParameter*, void*, void**, uno_Any**) (pThis=0x3ab9a80, aVtableSlot=..., pReturnTypeRef=0x1c07390, nParams=0, pParams=0x0, pUnoReturn=0x0, pUnoArgs=0x0, ppUnoExc=0x2b12e6861488) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:237 > pStack = 0x2b12e6861170 > pFPR = {2.3399036413000935e-310, 2.3399017635979741e-310, 1.9097962118687451e-313, 2.3399036413020203e-310, 2.9003052604790195e-316, -1.3614915359519845e+193, 2.339903641302465e-310, 0} > __PRETTY_FUNCTION__ = "void cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, typelib_TypeDescriptionReference*, sal_Int32, typelib_MethodParameter*, void*, void**, uno_Any**)" > pCppArgs = 0x2b12e6861160 > pStackStart = 0x2b12e6861170 > pGPR = {61588208, 9, 47360176952128, 47360119419570, 0, 58702832} > nTempIndices = 0 > nFPR = 0 > pAdjustedThisPtr = 0x3abc2f0 > ppTempParamTypeDescr = 0x2b12e6861160 > nGPR = 1 > pReturnTypeDescr = 0x1c07390 > pCppReturn = 0x0 > bSimpleReturn = true > pTempIndices = 0x2b12e6861160 > #13 0x00002b12e3176bdb in bridges::cpp_uno::shared::unoInterfaceProxyDispatch(_uno_Interface*, _typelib_TypeDescription const*, void*, void**, _uno_Any**) (pUnoI=0x3ab9a80, pMemberDescr=0x37fbbf0, pReturn=0x0, pArgs=0x0, ppException=0x2b12e6861488) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:425 > nMemberPos = 27 > aVtableSlot = {offset = 0, index = 9} > pThis = 0x3ab9a80 > pTypeDescr = 0x2b14740 > __PRETTY_FUNCTION__ = "void bridges::cpp_uno::shared::unoInterfaceProxyDispatch(uno_Interface*, const typelib_TypeDescription*, void*, void**, uno_Any**)" > #14 0x00002b12e441cf28 in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*) const (this=0x3a0fd50, returnValue=0x2b12e68618a0, outArguments=0x2b12e6861920) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/binaryurp/source/incomingrequest.cxx:242 > exc = <error reading variable: Cannot access memory at address 0x7261686320747376> > pexc = 0x2b12e68614b0 > retType = {_pTypeDescr = 0x1c07390} > nSize = 0 > retBuf = std::__debug::vector of length 0, capacity 0 > outBufs = empty std::__debug::list > args = std::__debug::vector of length 0, capacity 0 > __PRETTY_FUNCTION__ = "bool binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny>*) const" > isExc = false > #15 0x00002b12e441bd16 in binaryurp::IncomingRequest::execute() const (this=0x3a0fd50) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/binaryurp/source/incomingrequest.cxx:79 > resetCc = true > oldCc = {m_pUnoI = 0x0} > ret = {data_ = _uno_Any(void)} > outArgs = std::__debug::vector of length 0, capacity 0 > isExc = false > #16 0x00002b12e443c7a4 in binaryurp::(anonymous namespace)::request(void*) (pThreadSpecificData=0x3a0fd50) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/binaryurp/source/reader.cxx:85 > __PRETTY_FUNCTION__ = "void binaryurp::{anonymous}::request(void*)" > #17 0x00002b12c2ce1f5f in cppu_threadpool::JobQueue::enter(long, bool) (this=0x3ab9da0, nDisposeId=61386512, bReturnWhenNoJob=true) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppu/source/threadpool/jobqueue.cxx:107 > guard = {pT = 0x3ab9da0} > job = {pThreadSpecificData = 0x3a0fd50, doRequest = 0x2b12e443c73b <binaryurp::(anonymous namespace)::request(void*)>} > pReturn = 0x0 > #18 0x00002b12c2ce6bfd in cppu_threadpool::ORequestThread::run() (this=0x3a8af10) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/cppu/source/threadpool/thread.cxx:172 > #19 0x00002b12c2ce712b in osl::threadFunc(void*) (param=0x3a8af20) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/include/osl/thread.hxx:185 > pObj = 0x3a8af20 > #20 0x00002b12bf40d7bd in osl_thread_start_Impl(void*) (pData=0x3a4c7e0) at /home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/sal/osl/unx/thread.cxx:237 > terminate = false > pImpl = 0x3a4c7e0 > __PRETTY_FUNCTION__ = "void* osl_thread_start_Impl(void*)" > #21 0x00002b12bfdf7dc5 in start_thread () at /lib64/libpthread.so.0 > #22 0x00002b12bfb24ced in clone () at /lib64/libc.so.6 [...] > make[1]: *** [/home/tdf/lode/jenkins/workspace/lo_tb_master_linux_dbg/workdir/JunitTest/sd_unoapi/done] Error 1 Change-Id: I7d034c02a49d315104d8329a4e1119e14e8e5e40 Reviewed-on: https://gerrit.libreoffice.org/40176 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> commit ae874484db56246a0c3755a4cd2979a6f4424ea1 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Jul 19 15:48:39 2017 +0200 tdf#109123 WIN Run instant timerout with low priority This busy-lock happens, because user messages have a higher priority then some system messages. What happens: 1. The main system loop picks up the LO scheduler 2. The idle worker (IW) is started 3. IW checks using AnyInput( VCL_INPUT_ANY ) for system events 4. A system event is found 5. The LO scheduler gets posted again 6. The main system loop picks up the LO scheduler instead of the system message => goto 2 Normally it's suggested to use WM_TIMER in this case, as these messages are supposed to have the lowest priority. But this doesn't work, if you use PostMessage to generate them and SetTimer doesn't accept a 0ms timeout. At least PeakMessage also picks up the WM_TIMER message before the system message, probably because PostMessage is somehow related to the threads queue - who knows. In the end this implements a manual, low priority event, which is checked at the end of the ImplSalYield function. It just runs, if there is nothing else to do. We still have to emit the timer callback event, as ImplSalYield may wait in GetMessage, but wParam now indicates, if it's a wakeup and can be ignored. We use the same event, so it's easier to filter. Thanks to Mike Kaganski for the missing information and ideas for the final implementation. Change-Id: Ib8e4f214ab8d3731d5594d68f38f46982c2eb36d Reviewed-on: https://gerrit.libreoffice.org/40190 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> commit 1bf599039831d4ecf91f65ca1ac92029762ba125 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Thu Jul 20 12:56:24 2017 +0200 Don't run testIdleMainloop on Windows Was just wondering, why the test finished so fast on Windows, and realized it's actually empty due to "#ifndef WIN32". Change-Id: I050b7cb7bd66bdd2a215ef6e7eaf26355e8d962f commit ec3982bac1a433275f5111b15a3667a89ee10436 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Tue Jul 18 19:55:01 2017 +0200 tdf#109123 Change SwDocIdle base class to Idle This hides SwDocIdle from SalInstance::AnyInput( VCL_INPUT_ANY ) on Windows. Otherwise Writer assumes there is more stuff to do, as it can't know the scheduled Windows event is just for itself, resulting in a busy loop, which freezes Writer. Reviewed-on: https://gerrit.libreoffice.org/40189 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> Conflicts: sw/source/core/doc/DocumentStatisticsManager.cxx Change-Id: I919c40e8e1673eb09a69a3084203d1c4a6ecac8a commit 8c086a89b7704fac72965e584412831af2c193a5 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Tue Jul 18 15:28:44 2017 +0200 Annotate some more Timers and Idles Reviewed-on: https://gerrit.libreoffice.org/40188 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> Conflicts: sfx2/source/view/ipclient.cxx svx/inc/sdr/contact/objectcontactofpageview.hxx Change-Id: Ic8ca00db385ed59bb16744581f9d7cc0fcbb4f5b commit 8d124e4e734f228f501050ed3d0da3a79804b294 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Mon Jul 17 14:10:16 2017 +0200 WIN revert to Sleep(1) for yield There are multiple ways on Windows to yield a thread: * SwitchToThread: yields to any thread on same processor * Sleep(0): yields to any thread of same or higher priority on any processor * Sleep(1): yields to any thread on any processor So we stay with Sleep(1), as it also seems the only call, which actually does some sleep and is not a busy wait. Change-Id: I85c69b2f32dba9869bbddc1a572b3a63c366c5d1 commit daac7af935ceeb6ccc154d6d6b1ba7e95d0a2e88 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Mon Jul 17 13:58:44 2017 +0200 WIN annotate GdiPlusBuffer Timer Change-Id: Ia7aa081848647314e14b5ccd3063d51700f2b6c6 commit 530adc6199be70980df836242ea623ade6779d3c Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Fri Jul 14 17:17:15 2017 +0200 Fix instant 0ms scheduler wakeup for headless This is a regression from commit 503eba23c9a199583eddee9e169a4fddbecf416f Due to rounding errors, as the Scheduler uses milliseconds, but the headless backend uses nanoseconds the StartTimer assumed it would wake up this ms, but the headless check function would still wait. This is more of a workaround, so instant wakeup for the headless backend works again. Change-Id: I2ba9b4ad2b67ec99eeb4dd098ded6457d3753127 commit d7da6b5f292eb70024c134451c62fbb8b0ffdac5 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Thu Jul 13 16:05:56 2017 +0200 GTK+ convert to a single-shot timer Simplified version of commit 3e20ce802ee2ab49c4f2a98880f6e999657686bb Since we're missing g_source_get_ready_time in our baseline, this can't change the complex implementation, but still drops the timer array and uses a single-shot timer, like all other backends. Change-Id: I0641da8d0db71785c505957533a9069924808cd4 commit c4d8912ccf809f3255d89d79f3ac8b5d6570d575 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Thu Jul 13 14:57:21 2017 +0200 Revert "GTK+ simplifiy system timer implementation" Current LO baseline doesn't have g_source_get_ready_time, so we keep the old stuff. This reverts commit 3e20ce802ee2ab49c4f2a98880f6e999657686bb. Change-Id: I32c39fa70c8d52cbb78620f528d60a986087dfd0 commit 313d6bfab5e669f1128beb7aa5e817d95a35f0eb Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Apr 5 14:44:34 2017 +0200 WIN shorten DoYield by using existing functions This also adds an sal_uLong nCount parameter to ImplSalYieldMutexAcquireWithWait, so it can be called like ImplSalAcquireYieldMutex and actually uses the result from the deferred DoYield. Change-Id: Ie3b466ad03e7ed8c35a62f41c09d09757865364d commit 802b1ed757441b376569415a955bde35627f304c Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Sep 14 18:17:18 2016 +0200 Don't poll busy documents via idle task Creates a very busy idle-loop, for non-task work like mail merge. Conflicts: sw/source/core/inc/DocumentTimerManager.hxx Change-Id: If7be82e4675008f23e6f4f6be5c40df40a231a8b commit 6d90f98b355805881d5a57f24973f7b0fd0854c2 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sun Jul 31 16:35:49 2016 +0200 Don't update document stats for non-idle views This functionality should be merged into the DocumentTimerManager, which itself should run the different document idle tasks via seperate jobs instead of a single idle, if they don't depend on each other. To implement a non-busy, suspendable Idle, this adds an AutoIdle class, which is automatically re-scheduled after being processed. It also adds a SwDocIdle, which isn't ready to schedule for busy documents. Conflicts: sw/source/core/doc/DocumentStatisticsManager.cxx Change-Id: I185137ed3423ecaae0f7edb39018d26c4244d359 commit bec653b8df85372b1c5065601e23fa399117bda2 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Aug 10 12:00:53 2016 +0200 Reorganize Scheduler priority classes This is based on glibs classification of tasks, but while glib uses an int for more fine grained priority, we stay with our enum. 1. Timers start with DEFAULT priority, which directly corresponds with the previous HIGH priority 2. Idles start with DEFAULT_IDLE priority instead of the previous HIGH priority, so idle default becomes "really run when idle". As RESIZE and REPAINT are special, and the DEFAULTS are set, there is just one primary decision for the programmer: should my idle run before paint (AKA HIGH_IDLE)? If we really need a more fine-grained classification, we can add it later, or also switch to a real int. As a result, this drops many classifications from the code and drastically changes behaviour, AKA a mail merge from KDE is now as fast as Gtk+ again. Conflicts: formula/source/ui/dlg/formula.cxx svx/source/sdr/event/eventhandler.cxx sw/source/uibase/docvw/srcedtw.cxx sw/source/uibase/utlui/unotools.cxx vcl/source/uitest/uno/uiobject_uno.cxx Change-Id: I498a73fd02d5fb6f5d7e9f742f3bce972de9b1f9 commit a7f55104ff8b83a8d772101d8f17af43213eb39d Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sun Jan 29 17:12:25 2017 +0100 Drop Task::ReadyForSchedule All relevant information is also provided by UpdateMinPeriod and the calculations were even duplicated. This also includes dropping Scheduler::UpdateMinPeriod, as this is now reduced to a simple comparison and assignment, as we simply ignore larger returned sleep times. Change-Id: I13852e3e63daead451bf7fcb98be9b1d44bd7abd commit d135cc3c752fdc82c654af6bf6da09576867c2d5 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sat Jan 28 00:54:33 2017 +0100 Remove duplicated delete information Task::mbActive already stores the inverse information of ImplSchedulerData::mbDelete, so we can drop the latter one. Change-Id: I57f8c23ca1eebdeed780a644c83fcbeb9b92cd66 commit b1059dc40bfe5b0d0514b7e7584c9e9245a1d4e1 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Fri Jan 27 23:40:11 2017 +0100 Run LO scheduler only via system timer Change-Id: I5283f18aebcd6797ad35771ae8fc4a0f425ff924 commit 34f4efd669773dd45144a5d2a3b1aa9363181262 Author: Stephan Bergmann <sberg...@redhat.com> Date: Tue Nov 29 14:03:52 2016 +0100 Window::Invalidate must be called with SolarMutex locked ...it internally calls Scheduler::Start, which asserts now since c00d8271ba443c4f0acf657c226eea4824597f95 "vcl: assert solar mutex is held for various timer / scheduler ops." Caused the assert to fire when removing an extension via "Tools - Extension Manager... - Remove". Conflicts: desktop/source/deployment/gui/dp_gui_extlistbox.cxx Change-Id: Ied0591b799af333b3a4c11af07f5f8f1657304d6 commit 3d5038d668c26b9fafa5cfc145533b5ce29e3aaa Author: Stephan Bergmann <sberg...@redhat.com> Date: Tue Nov 29 11:29:19 2016 +0100 Idle::Start must be called with SolarMutex locked ...as asserted now since c00d8271ba443c4f0acf657c226eea4824597f95 "vcl: assert solar mutex is held for various timer / scheduler ops." Caused that assert to fire when adding an extension via "Tools - Extension Manager... Add". Change-Id: I86eeb2c4a83c3dff98ba9012c068af91e7932df6 commit 3d6fd3f7816b63575478520d4635dca09d4fcba4 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Tue Mar 21 13:32:47 2017 +0100 OSX fix empty message queue handling For some (unknown) reason [NSApp postEvent: ... atStart: NO] doesn't append the event, if the message queue is empty (AKA [NSApp nextEventMatchingMask .. ] returns nil). Due to nextEventMatchingMask usage, these postEvents have to run in the main thread. Using performSelectorOnMainThread deadlocks, since the calling thread may have locked the Yield mutex, so we simply defer the call using an NSEvent, like the Windows backend. So we have to peek at the queue and if it's empty simply prepend the event using [.. atStart: YES]. In the end this make the vcl_timer unit test pass on OSX. Conflicts: vcl/Module_vcl.mk vcl/osx/salinst.cxx Change-Id: Ib41186425b2f76faa0e9f116f47fdcd60d878099 commit 817718f9fc75d13f9b421382e605b8c34979c3ba Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Fri Feb 24 18:27:49 2017 +0100 OSX change to run LO via a single shot timer As all other backends, this runs the LO main loop just via the OSX main loop. Conflicts: vcl/osx/salinst.cxx vcl/osx/saltimer.cxx vcl/osx/vclnsapp.mm Change-Id: Ie7562444951e16ff58edcaf6409f32809314c2fa commit 5179929ff404f6b2b7ee48e5aa45f9613a342c66 Author: Stephan Bergmann <sberg...@redhat.com> Date: Tue Nov 22 15:59:01 2016 +0100 Timer::Start must be called with SolarMutex locked cf. DBG_TESTSOLARMUTEX added to Scheduler::Start in c00d8271ba443c4f0acf657c226eea4824597f95 "vcl: assert solar mutex is held for various timer / scheduler ops." So cover operations on AutoRecovery::m_aTimer with SolarMutexGuard instead of AutoRecovery's own mutex. Is it safe to split guarding like that here? Hopefully. Would it be better to exclusively use SolarMutexGuard? Maybe. The DBG_TESTSOLARMUTEX assert fired at least on macOS when opening some .odb file: > frame #19: 0x00007fffc80e5893 libsystem_c.dylib`__assert_rtn + 320 > frame #20: 0x000000010f5e4dae libvcllo.dylib`ImplDbgTestSolarMutex() + 110 at vcl/source/app/dbggui.cxx:47 > frame #21: 0x000000010e6a5d62 libtllo.dylib`DbgTestSolarMutex() + 130 at tools/source/debug/debug.cxx:74 > frame #22: 0x000000010f5eeb3a libvcllo.dylib`Scheduler::Start(this=0x00000001489233a8) + 58 at vcl/source/app/scheduler.cxx:287 > frame #23: 0x000000010f62f03f libvcllo.dylib`Timer::Start(this=0x00000001489233a8) + 31 at vcl/source/app/timer.cxx:93 > frame #24: 0x00000001481b7483 libfwklo.dylib`(anonymous namespace)::AutoRecovery::implts_updateTimer(this=0x00000001489232a0) + 259 at framework/source/services/autorecovery.cxx:2274 > frame #25: 0x00000001481b3009 libfwklo.dylib`(anonymous namespace)::AutoRecovery::changesOccurred(this=0x00000001489232a0, aEvent=0x00007f92d87d0ec8) + 649 at framework/source/services/autorecovery.cxx:1678 > frame #26: 0x000000014807e04b libfwklo.dylib`framework::WeakChangesListener::changesOccurred(this=0x0000000148c42488, rEvent=0x00007f92d87d0ec8) + 155 at framework/inc/helper/mischelper.hxx:222 > frame #27: 0x000000011c13f29e libconfigmgrlo.dylib`configmgr::Broadcaster::send(this=0x00007000082f9e70) + 5694 at configmgr/source/broadcaster.cxx:187 > frame #28: 0x000000011c0fd9bc libconfigmgrlo.dylib`configmgr::Access::insertByName(this=0x0000000148c118e0, aName=0x00007000082fa258, aElement=0x00007000082fa118) + 3196 at configmgr/source/access.cxx:1232 > frame #29: 0x00000001481bdd23 libfwklo.dylib`(anonymous namespace)::AutoRecovery::implts_flushConfigItem(this=0x00000001489232a0, rInfo=0x00007000082fa600, bRemoveIt=false)::AutoRecovery::TDocumentInfo const&, bool) + 2483 at framework/source/services/autorecovery.cxx:2092 > frame #30: 0x00000001481bb09d libfwklo.dylib`(anonymous namespace)::AutoRecovery::implts_registerDocument(this=0x00000001489232a0, xDocument=0x00007000082fa790) + 3597 at framework/source/services/autorecovery.cxx:2519 > frame #31: 0x00000001481b2a35 libfwklo.dylib`(anonymous namespace)::AutoRecovery::documentEventOccured(this=0x00000001489232a0, aEvent=0x00007f92db3d8620) + 165 at framework/source/services/autorecovery.cxx:1571 > frame #32: 0x00000001481d025b libfwklo.dylib`framework::WeakDocumentEventListener::documentEventOccured(this=0x0000000148c42548, rEvent=0x00007f92db3d8620) + 155 at framework/inc/helper/mischelper.hxx:258 > frame #33: 0x0000000109fca69e libsfxlo.dylib`comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>::operator(this=0x00007000082fa910, listener=0x00007000082fa880)(com::sun::star::uno::Reference<com::sun::star::document::XDocumentEventListener> const&) const + 126 at include/comphelper/interfacecontainer2.hxx:272 > frame #34: 0x0000000109fca4a3 libsfxlo.dylib`void comphelper::OInterfaceContainerHelper2::forEach<com::sun::star::document::XDocumentEventListener, comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> >(this=0x00000001489186b8, func=0x00007000082fa910) + 163 at include/comphelper/interfacecontainer2.hxx:285 > frame #35: 0x0000000109fca0de libsfxlo.dylib`void comphelper::OInterfaceContainerHelper2::notifyEach<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>(this=0x00000001489186b8, NotificationMethod=21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00, Event=0x00007f92db3d8620)(com::sun::star::document::DocumentEvent const&), com::sun::star::document::DocumentEvent const&) + 126 at include/comphelper/interfacecontainer2.hxx:298 > frame #36: 0x0000000109fc9f08 libsfxlo.dylib`(anonymous namespace)::SfxGlobalEvents_Impl::implts_notifyListener(this=0x0000000148918628, aEvent=0x00007f92db3d8620) + 168 at sfx2/source/notify/globalevents.cxx:438 > frame #37: 0x0000000109fc6874 libsfxlo.dylib`(anonymous namespace)::SfxGlobalEvents_Impl::documentEventOccured(this=0x0000000148918628, Event=0x00007f92db3d8620) + 132 at sfx2/source/notify/globalevents.cxx:243 > frame #38: 0x000000014957597e libdbalo.dylib`comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>::operator(this=0x00007000082fab30, listener=0x00007000082faaa0)(com::sun::star::uno::Reference<com::sun::star::document::XDocumentEventListener> const&) const + 126 at include/comphelper/interfacecontainer2.hxx:272 > frame #39: 0x0000000149575753 libdbalo.dylib`void comphelper::OInterfaceContainerHelper2::forEach<com::sun::star::document::XDocumentEventListener, comphelper::OInterfaceContainerHelper2::NotifySingleListener<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent> >(this=0x00007f92db0965f0, func=0x00007000082fab30) + 163 at include/comphelper/interfacecontainer2.hxx:285 > frame #40: 0x000000014957407e libdbalo.dylib`void comphelper::OInterfaceContainerHelper2::notifyEach<com::sun::star::document::XDocumentEventListener, com::sun::star::document::DocumentEvent>(this=0x00007f92db0965f0, NotificationMethod=21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00, Event=0x00007f92db3d8620)(com::sun::star::document::DocumentEvent const&), com::sun::star::document::DocumentEvent const&) + 126 at include/comphelper/interfacecontainer2.hxx:298 > frame #41: 0x0000000149573dfb libdbalo.dylib`dbaccess::DocumentEventNotifier_Impl::impl_notifyEvent_nothrow(this=0x00007f92db0965a0, _rEvent=0x00007f92db3d8620) + 379 at dbaccess/source/core/dataaccess/documenteventnotifier.cxx:196 > frame #42: 0x0000000149574580 libdbalo.dylib`dbaccess::DocumentEventNotifier_Impl::processEvent(this=0x00007f92db0965a0, _rEvent=0x00007f92db3d8610) + 224 at dbaccess/source/core/dataaccess/documenteventnotifier.cxx:229 > frame #43: 0x000000010832ba30 libcomphelper.dylib`comphelper::AsyncEventNotifierBase::execute(this=0x000000014df32dd0) + 1184 at comphelper/source/misc/asyncnotification.cxx:163 > frame #44: 0x000000010832e28a libcomphelper.dylib`comphelper::AsyncEventNotifierAutoJoin::run(this=0x000000014df32dd0) + 90 at comphelper/source/misc/asyncnotification.cxx:263 > frame #45: 0x000000010832f23e libcomphelper.dylib`::threadFunc(param=0x000000014df32dd0) + 30 at include/osl/thread.hxx:185 > frame #46: 0x0000000107e9bc27 libuno_sal.dylib.3`osl_thread_start_Impl(pData=0x00007f92db351d30) + 295 at sal/osl/unx/thread.cxx:240 > frame #47: 0x00007fffc82a1aab libsystem_pthread.dylib`_pthread_body + 180 > frame #48: 0x00007fffc82a19f7 libsystem_pthread.dylib`_pthread_start + 286 > frame #49: 0x00007fffc82a1221 libsystem_pthread.dylib`thread_start + 13 Change-Id: I58fe8d61bfc491fa635b75d471a221bbb55c0f6e commit bdc6f126c739034435dbf2ae625408b6ff5e4822 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sun Oct 30 02:02:10 2016 +0100 WIN just wait for the Yield mutex in the timerout Don't re-schedule a timeout, simply wait in the timer callback. Conflicts: vcl/win/app/saltimer.cxx Change-Id: Ib46eb6dbf57f29c85ffdbd6492922020f7785d30 commit 4ce6370323bf5417cc01e9ebc416713aa4ab832f Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sun Oct 30 00:14:18 2016 +0000 WIN simplify system timer / LO event handling This removes a level of indirection for the timer callback handling. It also ensures we just have a single timeout message queued. Also drops the 16bit MAX duration limit, as CreateTimerQueueTimer uses a DWORD for the DueTime parameter, which is always UINT32. CreateTimerQueueTimer already sets the period to 0, which makes it a one-shot timer, but there is also the WT_EXECUTEONLYONCE, which enforces the Period parameter to be 0. Conflicts: vcl/win/app/salinst.cxx vcl/win/app/saltimer.cxx vcl/win/window/salframe.cxx Change-Id: I549142394334bdc098f053b42f222b23cf4fcecd commit db34f7f2cd92d6db0ed153be9827d1316a008276 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sat Oct 29 12:00:08 2016 +0200 WIN unify deferred message handling Moves the common code into ProcessOrDeferMessage. All callers (try to) aquire the mutex before getting the WinSalFrame pointer, except for ImplHandleDeferredPaintMsg. This was probably an oversight, so this reverses the order in this function, so the GetWindowPtr is now always protected by the Solar mutex. Conflicts: vcl/win/window/salframe.cxx Change-Id: Icb8f34f7e8716f0faa90a95903b1681f7489aed2 commit fd61712dae220591cbe8b0649857ce33148a144b Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sat Oct 29 02:11:32 2016 +0200 WIN cleanup paint message handling Makes PAINT handling function use the POSTPAINT handling function and unifies the locking behaviour, so we now check the frame before trying to aquire the lock in both functions. Conflicts: vcl/win/window/salframe.cxx Change-Id: Ia6bac6e24d95e680830c5405f0ab34cbed6e9688 commit bc2d67736434d544d13b3322f37b00608a585263 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sun Nov 13 06:13:22 2016 +0100 GTK+ simplifiy system timer implementation Instead of implementing an own GSource, this implements the glib based system timer using the g_timeout_source_new() function. It removes the vector of GtkSalTimer and changes the remaining timer to be single-shot, just like the Windows and KDE platforms. The ownership handling is a little bit strange and should generally be changed to use std::shared_ptr as the result of CreateSalTimer for all backends. Change-Id: Iea40a6284bdc5c121235af5a6079a92a679391ca commit bf7e5f4e14e039b46a40e15786c0f88a536a65f7 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Thu Nov 10 18:16:49 2016 +0000 KDE4 handle timers via queued custom events Post the system timer as a custom event to the event queue and also changes the PostUserEvent froom a timer to a posted custom event. Conflicts: vcl/unx/kde4/KDEXLib.cxx vcl/unx/kde4/KDEXLib.hxx Change-Id: I0b77e0c64fce04b20e82ba8bbf72b7a99b1339af commit e29792b189193ad680a2dfd3afb724be723a7f7f Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Mon Oct 31 22:50:21 2016 +0100 KDE4 change system timer to be single-shot Change-Id: I21a0a62bd0cd122e0da676579d2b2a93264acdd8 commit 9da74ee2e838e370db2768a632a3205ca1da6c68 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Tue Feb 7 16:58:31 2017 +0100 Restart the system timer if it returns to early At least on Windows our GetSystemTicks() implementation - using QueryPerformanceCounter - occasionally states, the timer returned too early, which stops processing further LO events. As a workaround we restart the timer, as it's now the only source of running the LO main loop. Probably we should use osl_getSystemTime, for measuring, which uses GetSystemTimePreciseAsFileTime, if available. Nothing states anything is monotonic, so in this regard it may be flawed too. Change-Id: I94eacd8f5bacf277a68575cc8db84653cbc49d12 commit 58c51178177e98b1644ef830b7bc9831b4fe3a58 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Sep 14 15:33:54 2016 +0200 Run Idle tasks immediatly There is really no reason to wait a millisecond for an idle. Conflicts: include/vcl/scheduler.hxx vcl/source/app/svapp.cxx Change-Id: I7665d5f2e7d6ba3e01290a692bbc8e42c36b9986 commit 260d1e8de8bfaf366f72803bf1a2b7acf49b1783 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sun Jan 29 01:50:24 2017 +0100 SVP correctly handle sleep time Don't add 500 usec for 0ms sleeps and always round up the sleep time so we won't sleep too short. Change-Id: I28dda435de44031c050b6edbfae1e9d392465d24 commit ee71c4b28654f402600c184857a4a2727773251d Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Jan 25 15:53:15 2017 +0100 Round-robin invoked tasks Add some round-robin to the task processing, so equal priority (auto) tasks won't always be scheduled, if there are multiple tasks with the same priority. Change-Id: Ice111aa5f85e9181b3ee9799ca4df0d58f210fe9 commit 992825bbe5bbdbe58bbf48d609b903695afede4e Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sat Jan 28 00:31:21 2017 +0100 Correctly account invoked task Don't account the to-be invoked task before invoking it. If it happens to be restarted, account it and eventually lower the system timer timeout. Change-Id: I567e3b92c6c2999ce51aecb31f858e51cab6c999 commit 3a7c1269b59c045528de6a207c86d6eaee8eb3d3 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Jan 25 15:49:44 2017 +0100 Introduce a scheduler stack While the stack removes all invoked tasks from the queue, which actively removes it from scheduling, it also helps to faster handle nested calls, as we don't have to look for the previous position to move the task to the end of the queue for the round robin. Change-Id: I358cf2492e9630f67685a2b780509edb56691830 commit a172c088e9c42175adf9d3caaa33cfb29aaa7721 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Jan 25 11:22:56 2017 +0100 Correctly account starting tasks When (re-)starting the system timer for new task, we have to take the already passed time into account to correctly set the new timeout time for the system timer. Change-Id: I1c1c61b3e54bd14d9451c53150251534b2a960f0 commit 3198719d024049702cef314f64a8d4a58ec09672 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Thu Sep 8 06:55:30 2016 +0200 Drop special idle handling Idles are just instant timers, which should most time have a low priority, By dropping most special idle handling we'll just schedule by priority. This also reverts SalYieldResult back to a bool, which just indicates if any event was processed. Conflicts: include/vcl/scheduler.hxx vcl/inc/unx/gtk/gtkdata.hxx vcl/osx/salinst.cxx vcl/osx/salnstimer.mm vcl/osx/saltimer.cxx vcl/source/app/svapp.cxx vcl/unx/generic/app/saldata.cxx vcl/unx/gtk/gtkdata.cxx vcl/unx/gtk3/gtk3gtkdata.cxx vcl/unx/kde4/KDEXLib.cxx vcl/unx/kde4/KDEXLib.hxx vcl/win/app/saltimer.cxx Change-Id: Ia0b91b06dffb77af066f01838d8f9483523bf67d commit 80a1c40aee93b44d3a58a724deb04fa239aefb36 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sun Oct 30 00:03:34 2016 +0200 Change scheduler list to be queue-like The scheduler modifies the SchedulerData list mainly in two ways: 1. Remove a finished item 2. Append a new item This optimizes the Append operation by keeping a last element pointer, so we don't have to walk the whole list to find it. This way this list is converted to a queue-like structure. Conflicts: vcl/inc/svdata.hxx Change-Id: If7214e1f6016414551abbef11f26f332737f7893 commit 0833c9e131a5300f1361486a4b0856e749a0c21c Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Fri Jan 20 13:24:02 2017 +0100 Just walk the task list once This refactors some more scheduler code by merging the code from ProcessTaskScheduling into CalculateMinimumTimeout and keeping the ProcessTaskScheduling name. It replace the bHasPendingIdles information with a HasPendingTasks function, based on the sleep timeout and invoke time. To drop IsIdle() we simply account Idles again and stop the system timer, so we instantly run our application loop again. This makes all Tasks really run immediate instead of waiting 1ms. Change-Id: I690a8754e6b115a53e74ef777e988b66b4e5037f commit f245aebaa7a77f967dff4ca156893de06117d162 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Fri Jan 20 13:12:43 2017 +0100 Refactor Scheduler by merging functions Merges ImplSchedulerData::Invoke() into ProcessTaskScheduling() and removes indention levels in CalculateMinimumTimeout by using goto. This is straight forward. Conflicts: vcl/source/app/scheduler.cxx Change-Id: I740b97315df92f8b979089e7e22058e628f95bc0 commit 4eddf3e8522370d7ecdbcd332dcf2271cf6bbd04 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Thu Feb 2 17:21:23 2017 +0100 Move scheduler task into its own header Conflicts: desktop/qa/desktop_lib/test_desktop_lib.cxx include/vcl/scheduler.hxx sc/qa/unit/dataproviders_test.cxx sc/qa/unit/tiledrendering/tiledrendering.cxx sd/qa/unit/tiledrendering/tiledrendering.cxx sw/qa/extras/tiledrendering/tiledrendering.cxx vcl/source/app/scheduler.cxx vcl/source/uitest/uno/uiobject_uno.cxx Change-Id: I54534787b8cfa4c47dc09dde9c38a7893df9d367 commit f7c5f1832fb57bf3e219415df3ea19e0d6b11527 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Sun Jan 29 01:27:17 2017 +0100 Refactor Scheduler global data Move all Scheduler members of ImplSVData into ImplSchedulerContext and make ImplSchedulerContext a member of ImplSVData. Change-Id: I186bebdfb5701543595848968235b5a56b6598e9 commit 7c204eca6a07af0a015fdb64f802cd94950dac7d Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Mon Jan 23 11:56:41 2017 +0100 Add some Scheduler unit tests and logging 1. calling Start() for invoked tasks 2. correctly schedule by priority 3. self-stopping AutoTimer This also adds SAL_INFO output to Scheduler and Task to log the scheduling processing tasks. Conflicts: vcl/osx/salinst.cxx vcl/qa/cppunit/timer.cxx vcl/source/app/scheduler.cxx vcl/unx/kde4/KDESalInstance.cxx vcl/unx/kde4/KDESalInstance.hxx Change-Id: I3c8a708d1fd51c550320f8af3f9486c43c32e358 commit 72a40276aaec688948e9e169cf8268c6c66a0dba Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Mon Jan 23 19:37:51 2017 +0100 Change all Idle* LINKs to be Timer* Seem UBSAN doesn't like my forced reinterpret_cast to set the Idles Link in the Timer class. Now there are two possible solution: 1. convert all (DECL|IMPL).*_LINK call sites to use a Timer* or 2. split the inheritance of Idle from Timer again to maintain different Link<>s and move all common code into a TimerBase. While the 1st is more correct, the 2nd has a better indicator for Idles. This implements the first solution. And while at it, this also converts all call sites of SetTimeoutHdl and SetIdleHdl to SetInvokeHandler and gets rid of some local Link objects, which are just passed to the SetInvokeHandler call. It also introduces ClearInvokeHandler() and replaces the respective call sites of SetInvokeHandler( Link<Timer *, void>() ). Conflicts: avmedia/inc/mediacontrol.hxx avmedia/source/framework/mediacontrol.cxx avmedia/source/framework/soundhandler.cxx avmedia/source/framework/soundhandler.hxx basctl/source/basicide/baside2.hxx basctl/source/basicide/baside2b.cxx basctl/source/dlged/dlged.cxx basctl/source/inc/dlged.hxx chart2/source/view/charttypes/GL3DBarChart.cxx chart2/source/view/inc/GL3DBarChart.hxx cui/source/dialogs/cuigaldlg.cxx cui/source/dialogs/linkdlg.cxx cui/source/dialogs/thesdlg.cxx cui/source/inc/backgrnd.hxx cui/source/inc/chardlg.hxx cui/source/inc/cuigaldlg.hxx cui/source/inc/linkdlg.hxx cui/source/inc/macroass.hxx cui/source/inc/thesdlg.hxx cui/source/options/optjava.cxx cui/source/options/optjava.hxx cui/source/tabpages/backgrnd.cxx cui/source/tabpages/chardlg.cxx cui/source/tabpages/macroass.cxx dbaccess/source/ui/inc/JoinTableView.hxx dbaccess/source/ui/querydesign/JoinTableView.cxx dbaccess/source/ui/tabledesign/TEditControl.cxx desktop/source/app/app.cxx desktop/source/deployment/gui/dp_gui_dialog2.cxx desktop/source/deployment/gui/dp_gui_dialog2.hxx editeng/source/editeng/impedit.hxx editeng/source/editeng/impedit3.cxx extensions/source/bibliography/bibcont.cxx extensions/source/bibliography/bibcont.hxx extensions/source/bibliography/toolbar.cxx extensions/source/bibliography/toolbar.hxx extensions/source/update/ui/updatecheckui.cxx forms/source/component/ListBox.cxx forms/source/component/ListBox.hxx formula/source/ui/dlg/formula.cxx formula/source/ui/dlg/funcutl.cxx fpicker/source/office/iodlg.cxx framework/source/services/autorecovery.cxx include/formula/formula.hxx include/formula/funcutl.hxx include/sfx2/basedlgs.hxx include/sfx2/dinfdlg.hxx include/sfx2/dispatch.hxx include/sfx2/dockwin.hxx include/svtools/asynclink.hxx include/svtools/filechangedchecker.hxx include/svtools/treelistbox.hxx include/svtools/wizdlg.hxx include/svx/fontwork.hxx include/svx/graphctl.hxx include/svx/imapdlg.hxx include/svx/modctrl.hxx include/svx/numvset.hxx include/svx/sidebar/PanelLayout.hxx include/svx/svdpntv.hxx include/vcl/dockwin.hxx include/vcl/syswin.hxx include/vcl/texteng.hxx include/vcl/toolbox.hxx include/vcl/window.hxx linguistic/source/lngsvcmgr.cxx linguistic/source/lngsvcmgr.hxx reportdesign/source/ui/inc/DesignView.hxx reportdesign/source/ui/report/DesignView.cxx sc/inc/chartlis.hxx sc/inc/document.hxx sc/inc/scmod.hxx sc/source/core/data/documen2.cxx sc/source/core/tool/chartlis.cxx sc/source/ui/app/scmod.cxx sc/source/ui/dbgui/filtdlg.cxx sc/source/ui/dbgui/sfiltdlg.cxx sc/source/ui/docshell/autostyl.cxx sc/source/ui/inc/acredlin.hxx sc/source/ui/inc/anyrefdg.hxx sc/source/ui/inc/autostyl.hxx sc/source/ui/inc/conflictsdlg.hxx sc/source/ui/inc/filtdlg.hxx sc/source/ui/inc/navipi.hxx sc/source/ui/inc/tphfedit.hxx sc/source/ui/miscdlgs/acredlin.cxx sc/source/ui/miscdlgs/anyrefdg.cxx sc/source/ui/miscdlgs/conflictsdlg.cxx sc/source/ui/navipi/navipi.cxx sc/source/ui/pagedlg/tphfedit.cxx sd/inc/drawdoc.hxx sd/source/core/drawdoc4.cxx sd/source/ui/dlg/brkdlg.cxx sd/source/ui/dlg/filedlg.cxx sd/source/ui/framework/configuration/ConfigurationUpdater.cxx sd/source/ui/framework/module/ShellStackGuard.cxx sd/source/ui/framework/module/ShellStackGuard.hxx sd/source/ui/inc/BreakDlg.hxx sd/source/ui/inc/View.hxx sd/source/ui/slidesorter/controller/SlsAnimator.cxx sd/source/ui/slidesorter/inc/controller/SlsAnimator.hxx sd/source/ui/view/sdview4.cxx sfx2/source/appl/appcfg.cxx sfx2/source/appl/newhelp.cxx sfx2/source/appl/newhelp.hxx sfx2/source/control/dispatch.cxx sfx2/source/control/itemdel.cxx sfx2/source/dialog/basedlgs.cxx sfx2/source/dialog/dinfdlg.cxx sfx2/source/dialog/dockwin.cxx sfx2/source/dialog/filedlghelper.cxx sfx2/source/dialog/filedlgimpl.hxx sfx2/source/dialog/templdlg.cxx sfx2/source/doc/new.cxx sfx2/source/inc/templdgi.hxx sfx2/source/view/ipclient.cxx starmath/inc/edit.hxx starmath/source/edit.cxx svtools/source/contnr/imivctl.hxx svtools/source/contnr/imivctl1.cxx svtools/source/contnr/svimpbox.cxx svtools/source/contnr/treelistbox.cxx svtools/source/control/asynclink.cxx svtools/source/control/tabbar.cxx svtools/source/dialogs/wizdlg.cxx svtools/source/graphic/grfmgr.cxx svtools/source/inc/svimpbox.hxx svtools/source/misc/filechangedchecker.cxx svx/inc/sdr/overlay/overlaymanagerbuffered.hxx svx/inc/svdibrow.hxx svx/source/dialog/_contdlg.cxx svx/source/dialog/contimp.hxx svx/source/dialog/fontwork.cxx svx/source/dialog/graphctl.cxx svx/source/dialog/imapdlg.cxx svx/source/dialog/svxbmpnumvalueset.cxx svx/source/form/datanavi.cxx svx/source/form/formcontroller.cxx svx/source/inc/datanavi.hxx svx/source/inc/formcontroller.hxx svx/source/sdr/overlay/overlaymanagerbuffered.cxx svx/source/sidebar/PanelLayout.cxx svx/source/sidebar/media/MediaPlaybackPanel.cxx svx/source/sidebar/media/MediaPlaybackPanel.hxx svx/source/stbctrls/modctrl.cxx svx/source/svdraw/svdibrow.cxx svx/source/svdraw/svdpntv.cxx svx/source/tbxctrls/grafctrl.cxx sw/inc/doc.hxx sw/qa/extras/uiwriter/uiwriter.cxx sw/source/core/doc/DocumentStatisticsManager.cxx sw/source/core/doc/DocumentTimerManager.cxx sw/source/core/doc/docdesc.cxx sw/source/core/docnode/threadmanager.cxx sw/source/core/inc/DocumentTimerManager.hxx sw/source/core/inc/threadmanager.hxx sw/source/ui/dbui/mmoutputtypepage.cxx sw/source/ui/envelp/labfmt.cxx sw/source/ui/envelp/labfmt.hxx sw/source/ui/inc/mmresultdialogs.hxx sw/source/uibase/docvw/edtwin.cxx sw/source/uibase/docvw/srcedtw.cxx sw/source/uibase/inc/edtwin.hxx sw/source/uibase/inc/navipi.hxx sw/source/uibase/inc/srcedtw.hxx sw/source/uibase/inc/unotools.hxx sw/source/uibase/utlui/navipi.cxx sw/source/uibase/utlui/unotools.cxx vcl/backendtest/VisualBackendTest.cxx vcl/inc/svdata.hxx vcl/inc/unx/gtk/gtksalmenu.hxx vcl/source/app/svapp.cxx vcl/source/edit/texteng.cxx vcl/source/window/dockmgr.cxx vcl/source/window/dockwin.cxx vcl/source/window/paint.cxx vcl/source/window/syswin.cxx vcl/source/window/toolbox.cxx vcl/source/window/window.cxx vcl/unx/generic/print/genprnpsp.cxx vcl/unx/gtk/gtksalmenu.cxx Change-Id: I40c4167b1493997b7f136add4dad2f4ff5504b69 commit d6b1aae9094320c09464efd46e7981f4b125562b Author: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> Date: Mon Jul 31 09:10:36 2017 +0200 sfx2: just use Idle in SfxItemDisruptor_Impl This Application::InsertIdleHdl() stuff is ancient and now obsolete. Change-Id: I082870328711b2159b05d8cb077c0e439b7ee94c Reviewed-on: https://gerrit.libreoffice.org/27597 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit ba70e0906e02994f349e07815ebfbff3eccb73d5 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Thu Jan 19 12:18:52 2017 +0100 Apply stricter member access control for Tasks This disallows changing mbAuto and changing values of ImplSchedulerData outside of Scheduler / Task functions. Reviewed-on: https://gerrit.libreoffice.org/33317 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de> Conflicts: include/vcl/scheduler.hxx Change-Id: Ia624999bd63190c072eb66427aec38e7ac8cfa1b commit cf9467a4971e20a8ab1606c7e844fc2877a89c9f Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Thu Jan 5 09:47:50 2017 +0100 KDE4 Qt always processes all pending events Change-Id: I6a6e37c36a64640b641b116867da5c63c9d36bca commit 0cd5c989b9ccc3ddeb2707b6995a0abc079442a6 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Sep 14 13:48:02 2016 +0200 Change Idle to be a Timer subclass Drops a lot of duplicated code, as Idle is just a convenience class for instant, mostly low priority timers. Conflicts: include/vcl/idle.hxx Change-Id: I847592e92e86d15ab1cab168bf0e667322e48048 commit ddf02eee4d984838fe57d69f3a831622a35fc0ec Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Nov 2 16:43:02 2016 +0100 Add sensible timer handling for Calc input There is no need to destroy and recreate the timer object. Simply stop and start the timer as required. Conflicts: sc/source/ui/app/inputhdl.cxx Change-Id: I2885fef8bdb90c379dc2e9b9caf986d250face5c commit e42077e42024ad232a6413db72c79ca0c241300e Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Jan 4 12:06:42 2017 +0100 Refactor Scheduler to add Task class Moves all the "task-specific" stuff into a Task class and just keeps the "real" static Scheduler functions in the original Scheduler class. Conflicts: desktop/source/lib/init.cxx include/vcl/scheduler.hxx sfx2/source/control/itemdel.cxx sfx2/source/dialog/dockwin.cxx sfx2/source/dialog/filedlghelper.cxx svx/source/sdr/event/eventhandler.cxx svx/source/sidebar/PanelLayout.cxx svx/source/sidebar/media/MediaPlaybackPanel.cxx sw/source/uibase/docvw/srcedtw.cxx toolkit/source/awt/vclxtoolkit.cxx vcl/backendtest/VisualBackendTest.cxx vcl/source/app/scheduler.cxx vcl/source/window/window.cxx Change-Id: I9eb02d46e2bcf1abb06af5bab1fa0ee734d1984c commit 66ca57856f625ef6a89c0211a6378701e5c7cc4c Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Tue Sep 6 10:44:05 2016 +0200 Convert bTimer => bIdle All other places already refer to being Idle, so change the Scheduler::ProcessTaskScheduling argument to bIdle and adapt all other scheduler-related functions. Change-Id: If5a605abbc3e620092127b65ada29f11215a0343 commit 6893d02e7bb1be6af86a779aa401bf0946ea9512 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Tue Sep 6 08:27:08 2016 +0000 Always schedule with the same time No need to always update the time - scheduling should be fast! Change-Id: Ic4c01f5a5759ef4970f1385aab6ef93cd67f33b6 commit b20f6c845b610e6b42f807fa08dafc0865a3fa57 Author: Jan-Marek Glogowski <glo...@fbihome.de> Date: Wed Jul 20 10:54:30 2016 +0200 tdf#97087 GDB pretty print the Scheduler task list In addition to the GDB pretty printer, this annotates a lot more Timers and Idles. Conflicts: cui/source/tabpages/macroass.cxx framework/source/uielement/menubarmanager.cxx sfx2/source/control/itemdel.cxx sfx2/source/dialog/dockwin.cxx svtools/source/graphic/grfmgr.cxx svx/source/sidebar/PanelLayout.cxx Change-Id: I5b93fab02161b23bb753e65ef92643a04fb0789c commit 2355a92ae4bd50a9c487b9248d4a9da889468491 Author: Thorsten Behrens <thorsten.behr...@cib.de> Date: Tue Jul 18 18:51:50 2017 +0200 tdf#109194 cleanse startup notification foo from env So when the desktop environment does startup notification, this DESKTOP_STARTUP_ID gets passed on to the launched application. Problem is, XDG spec says app should read it from the env, then discard - which LibreOffice never does. When passed on to child processes, funny effects might ensue, so let's just erase this at the end of VCL init, when I'm reasonably sure every gtk/kde/whatnot backend did read it. Change-Id: I1f758c7a02455028d2b520c144ffe32538621f19 Reviewed-on: https://gerrit.libreoffice.org/40153 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> (cherry picked from commit 8180b6801dca2052a9d40411f9bbdcc96198c52f) commit 27c2b725296b2d0182dcd0e829cdd8e414953629 Author: Juergen Funk <juergen.funk...@cib.de> Date: Fri May 13 10:42:17 2016 +0200 tdf#99815 use XNotifyingDispatch in sfx2 trac#18016 - move DispatchHelper somewhere public - use it from generic dispatcher call sites in sfx2 - return result of dispatcher calls (conveyed via XDispatchResultListener) to calling code, instead of faking it Reviewed-on: https://gerrit.libreoffice.org/24953 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> (cherry picked from commit f9bb13419549d621ffd55d9d81e0732a89560e2e) Change-Id: Ie8041133e99dd99e45819f98798829b96532b9e6 commit e4d535b6e05484795a7e16b761024cb8f76048d2 Author: Juergen Funk <juergen.funk...@cib.de> Date: Fri Jul 15 11:56:02 2016 +0200 tdf#100929 - Windows Installer: "ADDLOCAL=ALL" doesn't set all features trac#14203 The CustomAction "SelectLangauge" overrides the ADDLOCAL-switch. When ADDLOCAL is set, skip the CustomAction "SelectLanguage" Reviewed-on: https://gerrit.libreoffice.org/27230 Reviewed-by: Andras Timar <andras.ti...@collabora.com> Tested-by: Thorsten Behrens <thorsten.behr...@cib.de> (cherry picked from commit 0a76a41ae7a2ebd53f80f01ea9e2bcff3026d155) Change-Id: I716349a0645e2f8dd193103b35028e493ca8e3a1 commit 9d9bdbbff74ea513dabc61d71f04c7bd5b776e35 Author: Juergen Funk <juergen.funk...@cib.de> Date: Wed Jun 21 14:41:49 2017 +0200 Improve tdf#106942: always erase empty/corrupt lockfile also when we could not create lockfile, not only when open as readonly Change-Id: Ied53bbfe47669f62553d97d81f0bed156ae58887 Reviewed-on: https://gerrit.libreoffice.org/39054 Reviewed-by: Katarina Behrens <katarina.behr...@cib.de> Tested-by: Katarina Behrens <katarina.behr...@cib.de> (cherry picked from commit af9bea21390800e5bbc73e07ce9828189d8dabf3) commit 8fe0733b45c161a36fc92da488f9bf72ebfd3bbb Author: Thomas Beck <thomas.b...@cib.de> Date: Fri May 19 13:44:58 2017 +0200 trac#21081 Aus aDIS generierte RTF-Dokumente werden falsch eingelesen Backport des fixes aus dem community upstream. Reviewed-on: https://gerrit.libreoffice.org/37814 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 8a71a2a843c31e5eeb5ae4b08ee861ba8f2c4516) trac#21081 Beheben von fehlern die durch backport enstanden sind Beheben von einigen buildfehlern und merge konflikten Change-Id: I55025984e343d04da7fc0f201164ef39e3a26202 901861fab1a72bb2d222dc3b8292b89aa696256d commit 937d25cbf7d69f6d8eaf29ed8bb3d5fa7daf72ee Author: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> Date: Tue Apr 25 22:25:18 2017 +0200 update credits Change-Id: Id21b158bcdb4ff51950bcce0869e6c79a7e48fc4 (cherry picked from commit aa6a9bbd66beb234c54d8f881b56da6d8753c423) commit 2b0fe1e36b60702492eb0714f1603b24d8ffb36e Author: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> Date: Tue Apr 25 19:45:59 2017 +0200 Updated core Project: translations aa6efd59570a753d3571482443e6ee8811cbada8 update templates for 5.2.7 rc2 Change-Id: I0917d055be04033585368ac3a44e7dbce4c3a10c commit c475be3a0986fc9dbac1b6d8d55d8fe39133c5bc Author: Bartosz Kosiorek <gan...@poczta.onet.pl> Date: Fri Apr 14 00:04:57 2017 +0200 tdf#107159 EMF+ Add support for EmfPlusDrawArc record EmfPlusDrawArc record specifies drawing the arc of an ellipse. Change-Id: I87788a9b14f518a383cbc5b804af635427e4c395 Reviewed-on: https://gerrit.libreoffice.org/36537 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Bartosz Kosiorek <gan...@poczta.onet.pl> (cherry picked from commit 715df6e9f8926e511dbdee52367ec08676f71952) Reviewed-on: https://gerrit.libreoffice.org/36587 Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> commit 90a5916bec22ca0e3e1ed77dd4cfba89e437cc0d Author: Eike Rathke <er...@redhat.com> Date: Thu Apr 20 13:52:18 2017 +0200 Resolves: tdf#99625 add parameter classification for TEXTJOIN and CONCAT So in array context the functions return a single string instead of an array of identical strings. Change-Id: Ia6ada10be4912745b60e281fac1736c560162d3a (cherry picked from commit f0fef88b747cc4f4de7a5ccb93da9c062545dcfb) Reviewed-on: https://gerrit.libreoffice.org/36744 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> commit fbdcec569ac89ed303ad012eb5e5a10f6c6591b2 Author: Michael Stahl <mst...@redhat.com> Date: Thu Apr 20 22:19:45 2017 +0200 nss: upgrade to release 3.29.5 - fixes CVE-2017-5461 and CVE-2017-5462 - drop ubsan-alignment.patch.0, there is apparently now some NO_SANITIZE_ALIGNMENT macro upstream to get this effect - drop some hunks to prevent hard-coding CC/CCC vars, upstream now respects environment vars (but doesn't quote them...) - drop first hunk of ubsan.patch.0, fixed upstream - drop hunk for gtest-internal.h, header looks much newer anyway Reviewed-on: https://gerrit.libreoffice.org/36756 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit 0cdf41419af854acccee0f819d4add7e8cafb7dc) Change-Id: I5c484c02c1235e185af1ef5166b069303d3378e1 Reviewed-on: https://gerrit.libreoffice.org/36797 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> commit bc9e018a4e49e4378b2af727a8fa372718bc80a9 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Apr 24 15:06:10 2017 +0100 ofz#1220 sanitize nTyp to legal values Change-Id: Iad71c4f79dbe03e2e325453eb0506a2d92d67c2d Reviewed-on: https://gerrit.libreoffice.org/36893 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> commit cd8d9311e481f46a28e4468d1b3c80160be31edf Author: Eike Rathke <er...@redhat.com> Date: Thu Apr 20 22:06:23 2017 +0200 add ICU changeset-39671 fix for CVE-2017-7867 CVE-2017-7868 http://bugs.icu-project.org/trac/changeset/39671 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=213 https://bugzilla.redhat.com/show_bug.cgi?id=1444101 Reviewed-on: https://gerrit.libreoffice.org/36754 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Jenkins <c...@libreoffice.org> (cherry picked from commit c7de8233d15ed0c90fef6c49a54d60cf10119f58) Backported to older MSVC using the UGLY_SIZEOF_MAPTOUCHARS macro instead of sizeof(UTF8Buf::mapToUChars). Change-Id: I4e776ad4fe63c77057b0c823f8672a2b6703346f Reviewed-on: https://gerrit.libreoffice.org/36776 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit cc68cdf48b4bae522b175aeffd1bee30057f59ae Author: Caolán McNamara <caol...@redhat.com> Date: Fri Apr 21 10:51:19 2017 +0100 ofz#1193 we only set these values, never read them Change-Id: Ia2f54b536a4262e19abe260e8e19c9b15cc2d0ec Reviewed-on: https://gerrit.libreoffice.org/36781 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit e58085a5d32928e1bdd169ddf0555b502319d523 Author: Michael Meeks <michael.me...@collabora.com> Date: Wed Apr 19 01:19:59 2017 +0100 vcl: protect Window from exceptions during construction. Probable fix for: http://crashreport.libreoffice.org/stats/crash_details/f69188bd-0fdd-4b74-9ec6-35b544cba0c9 Change-Id: I6442451785867f0fc2daf84776118b092d4d6a18 Reviewed-on: https://gerrit.libreoffice.org/36653 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Meeks <michael.me...@collabora.com> (cherry picked from commit 6827da5052bfe975a3b34af8dfa8af75d41e904c) Reviewed-on: https://gerrit.libreoffice.org/36675 Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> commit cd7ad993eacc7bb56924b9609d63f38d283d37cb Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Wed Apr 5 21:09:59 2017 -0400 tdf#92650: handle overwritten references correctly in undo. (cherry picked from commit de39b6ba3a9edd20a476937ef0c78920df2f5c6d) Conflicts: sc/source/ui/docshell/docfunc.cxx sc/source/ui/undo/undoblk.cxx Change-Id: Idc3fbd78f8163c97a9cd80a3ff474b6da0349353 Reviewed-on: https://gerrit.libreoffice.org/36540 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Eike Rathke <er...@redhat.com> commit 98ff7727d6867a41445c392b1edee3fcafc3e6ac Author: Caolán McNamara <caol...@redhat.com> Date: Tue Apr 18 09:15:23 2017 +0100 catch exception like text_wrapper_get_caret_offset does Change-Id: I7d681a5cd58af60005eefa9969ec975d5cfc5580 (cherry picked from commit 0d2a607a849e3f1b51092c7d96bc5529420cfab2) Reviewed-on: https://gerrit.libreoffice.org/36636 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> commit 4d681f73528fed2d850367239b8125733af3863d Author: Caolán McNamara <caol...@redhat.com> Date: Sun Apr 16 14:25:25 2017 +0100 coverity#1405158 Wrong sizeof argument Change-Id: Ie6b7fc3d2b7d1ac709501698e55aabc72215b187 (cherry picked from commit b17177c63a4eac55dcdaa3006abec05ab71ca1b4) Reviewed-on: https://gerrit.libreoffice.org/36579 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> commit 1d602eac3e90ddd11b83f907c0c3fdda487c2f7f Author: Bartosz Kosiorek <gan...@poczta.onet.pl> Date: Fri Apr 7 19:50:26 2017 +0200 tdf#107019 EMF+ Add support for import EmfPlusRecordTypeDrawBeziers record EmfPlusDrawBeziers record defines the pen strokes for drawing a Bezier spline. Change-Id: I6ae08a861bcbadd373741781af0011528947243e Reviewed-on: https://gerrit.libreoffice.org/36280 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Bartosz Kosiorek <gan...@poczta.onet.pl> (cherry picked from commit 9b693d896bf9a08cd8987e483f5269d6f2be1fd3) Reviewed-on: https://gerrit.libreoffice.org/36533 commit e2e216ca8ed03b5da07a38d2c418b8f4edf913b2 Author: Bartosz Kosiorek <gan...@poczta.onet.pl> Date: Fri Apr 7 14:43:44 2017 +0200 tdf#107016 EMF+ Add support of import EmfPlusRecordTypeDrawRects record EmfPlusDrawRectss record defines the pen strokes for drawing a series of rectangles. Change-Id: Iaa061f8502fb51de44d2e65a1c92daf297b79d2b Reviewed-on: https://gerrit.libreoffice.org/36261 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Bartosz Kosiorek <gan...@poczta.onet.pl> (cherry picked from commit a45feba83e5fb35eee1884887e8dbe795ebacde5) Reviewed-on: https://gerrit.libreoffice.org/36529 commit c55f6f7f1e773c46d9dee3f257c14f7c36a6cb9a Author: Bartosz Kosiorek <gan...@poczta.onet.pl> Date: Sat Apr 8 01:10:05 2017 +0200 tdf#107034 EMF+ Add support for import EmfPlusDrawPie record The EmfPlusDrawPie record specifies drawing a section of the interior of an ellipse. Change-Id: Icd9d64117cc612d348c531932931f31e4d04e567 Reviewed-on: https://gerrit.libreoffice.org/36286 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Bartosz Kosiorek <gan...@poczta.onet.pl> (cherry picked from commit 2e7c94f5054dec4ab19c44209136c886793f0acb) Reviewed-on: https://gerrit.libreoffice.org/36531 commit 6d701e0aaad12deef4cb3590cb7346b63e71824d Author: Caolán McNamara <caol...@redhat.com> Date: Thu Apr 13 13:01:35 2017 +0100 ofz: header has to be at least 1 pair long Change-Id: I5725048519a2b68265e90d12b1e4bcb506c56fc2 (cherry picked from commit e72f3ce68e18ac604469ce5e856341a469af27ff) Reviewed-on: https://gerrit.libreoffice.org/36520 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit b2128b2bded3f90c800c66856d47f99727baea8d Author: Bartosz Kosiorek <gan...@poczta.onet.pl> Date: Fri Apr 7 13:24:41 2017 +0200 Replace EmfPlusRecordType decimal value with hex Change-Id: Ia5f248282e663e86b76a8c90fb5dd55d112f6912 Reviewed-on: https://gerrit.libreoffice.org/36260 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Bartosz Kosiorek <gan...@poczta.onet.pl> (cherry picked from commit 723ee43cf65f85d7b586ae8c98529a22621054a3) Reviewed-on: https://gerrit.libreoffice.org/36523 commit 80b0bfcc57d5f5fa6fe1ce6c9da329c9a5788543 Author: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> Date: Wed Apr 12 18:53:44 2017 +0200 bump product version to 5.2.8.0.0+ Change-Id: Ic981e67e4ba8ad1f3f9344c91d6a8338ceb68e3e commit 8026600bd58920fc6bf1c2edf1f8a66f79a18e05 Author: Michael Stahl <mst...@redhat.com> Date: Wed Apr 5 16:54:57 2017 +0200 rhbz#1438179 sw: fix toolbar "Next Track Change" / "Previous..." There's some confusing workarounds in SwView::Execute() that aren't needed if the SwCursorShell just calls NormalizePam() so it always makes progress. (cherry picked from commit 25eb0899227830cca7f28006376962d84f8e9c7a) Change-Id: I3b014079b19925041234fcd858526148890f560c Reviewed-on: https://gerrit.libreoffice.org/36167 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> commit b521610aa26102156025f1034efb80778ceffdc5 Author: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> Date: Wed Apr 12 17:29:58 2017 +0200 Updated core Project: translations 7ca7a156211552ca17c6f37c48d3b140062df03d update templates for 5.2.7 rc1 Change-Id: Ia2100bf7a747b1e5f19a786fcd76be94ae77a898 commit 30869d479ea5b5a737dcade87fdad4badd8a80c9 Author: Caolán McNamara <caol...@redhat.com> Date: Sat Apr 8 21:04:45 2017 +0100 ofz#1062 ensure cshape lifecycle matches expectations Change-Id: I586e9b3546516a0f05d86b2f7dd93e7c292a6795 Reviewed-on: https://gerrit.libreoffice.org/36302 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> commit cce29563ab5ab09f24955983a89c70b7deb30623 Author: Tamás Zolnai <tamas.zol...@collabora.com> Date: Sat Mar 11 16:42:22 2017 +0100 tdf#106217: Wrong size and position of a shape inside chart Same code which was added to the method DrawingFragment::onEndElement() in d178d7bef193565a7d6aacbc37a58dfc4bd7b316 A shape's size and position inside a chart object are primarily defined by <cdr:from> and <cdr:to> tags in drawing.xml, but in the same file we also have an <a:xfrm> tag which is used for the same thing (defining size and postion) in general. Testing with MSO it seems it ignores what values are set to <a:xfrm> and uses only the <cdr:from> and <cdr:to> values. The test document showing this problem must be created an earlier version of MSO, becuase <a:xfrm> is set to some random values. Editing the chart and saving it with MSO 2013 the <a:xfrm> values are set consistently with <cdr:from> and <cdr:to> pair. Reviewed-on: https://gerrit.libreoffice.org/35069 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com> (cherry picked from commit aa204f1c09a760d6753c408376ab7307fb13ad91) Change-Id: Icbaff78e5a6fcea36678c3b3755c97f57976b626 Reviewed-on: https://gerrit.libreoffice.org/35076 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tor Lillqvist <t...@collabora.com> Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> commit 64ae3d14c63ee54dee2c5dcac88f606eebf54165 Author: Tor Lillqvist <t...@collabora.com> Date: Wed Feb 15 19:21:06 2017 +0200 tdf#106304: Fix newline and empty paragraph font size issues in .pptx export Output <a:br> instead of for hard newlines. This fixes the problem that the line before the hard newline in the .pptx export is not centred. The fix for the sd_export_tests is a bit hacky, but then so is the code in question. Don't unnecessarily use bogus default char size for a:endParaRPr. Instead use the size last used for an a:rPr below the same WriteText() call. I am not exactly sure about how this hangs together, but this has the desired effect on the exported .pptx. Change-Id: Ie23e0c33e6efb303b183d3b2efce6866d0dda4e8 Reviewed-on: https://gerrit.libreoffice.org/34888 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> commit 408240412628b95f1f6865d4a91b2c935b9397f5 Author: Caolán McNamara <caol...@redhat.com> Date: Fri Mar 3 11:25:32 2017 +0000 backport various fixes to aid future backporting ofz#725 fix hwp leak Change-Id: I09088981ca63b297781307590092725bc1cbed1b (cherry picked from commit 681b6361f23a8f20511ad97989c642b07f25c495) valgrind: uninitialized reads Change-Id: Ia1e821d1e323d85c65484c980be09f015af6517b (cherry picked from commit afabc7d2f2fcf8fcd39ff5002f09c32e8f03d4bb) partial loplugin:useuniqueptr extend to catch more localvar cases hwpfilter part of... commit aa09b0c27a6d925da428d6267daadc7338829869 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Thu Apr 6 09:46:06 2017 +0200 loplugin:useuniqueptr extend to catch more localvar cases i.e. where the code looks like { foo * p = new foo; ... delete p; return ...; } Change-Id: Iad770d1904b2373b1bf8ce609f4c95882388eff8 ofz: epic slow use of std::list Change-Id: I790a3098272101fd33f83f21bdcef1bb061efd76 Reviewed-on: https://gerrit.libreoffice.org/34635 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 283e843be91ef4d727c0815d1b8a0420fd16a7fd) use rtl::Reference in HwpReader instead of storing both a raw pointer and an uno::Reference (cherry picked from commit 0bab51d8ad35a31685002118cdac20657b57137a) Change-Id: I02dd356d9693116f98ad2b96951570b3ba448b14 Reviewed-on: https://gerrit.libreoffice.org/36301 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit ef97f21d8bf8fbd0f3dfeddf37909bec15c05d30 Author: Caolán McNamara <caol...@redhat.com> Date: Wed Apr 5 14:24:09 2017 +0100 ofz: treat short properties as run end Change-Id: I1250f74c9f4ed6679a89c7915fb704c8b8cd693f (cherry picked from commit 5252673d686913210dd65608b7d24b0e9d51cf00) Reviewed-on: https://gerrit.libreoffice.org/36148 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> commit dac491d8ffb29ba356acd9693412a6b647f6f767 Author: Eike Rathke <er...@redhat.com> Date: Mon Mar 6 22:26:32 2017 +0100 Resolves: tdf#102777 broadcast SC_TAB_INSERTED when inserting scenario So ScViewData::maTabData gets an entry added which deleting the scenario can remove again. (cherry picked from commit 4c8059a3e140171399ac85ceb882d23bb458599d) Change-Id: I166baeff5408ef67faef41364515a13b8d4610bb Reviewed-on: https://gerrit.libreoffice.org/34943 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> commit 9e12bb1a9f4589b748904b23dde0eb534064c93d Author: Adolfo Jayme Barrientos <fit...@ubuntu.com> Date: Sun Jan 1 17:39:23 2017 -0600 Bump copyright year to 2017 Change-Id: I26ddcdd7bb9616c0599eec9101603d4be1ea4147 (cherry picked from commit e5da108ef01872f460c176b6a9173e346e1d59a4) commit 187e4e310f7ab5e059fae29264cacd0795f66e76 Author: Eike Rathke <er...@redhat.com> Date: Fri Apr 7 16:20:37 2017 +0200 out-of-bounds tab access when deleting second last sheet Which in a debug build lead to STL assert Error: attempt to subscript container with out-of-bounds index Change-Id: I09fddbc9e4b214b0313c193f85830ed458d20c0e (cherry picked from commit 0c55972d747511dbc711f3c9cbb4db5d8c5dc2ff) Reviewed-on: https://gerrit.libreoffice.org/36273 Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> Tested-by: Jenkins <c...@libreoffice.org> commit dc18f45b1252f15be1e0224cc25f99352de83e3e Author: David Tardon <dtar...@redhat.com> Date: Mon Dec 19 13:19:42 2016 +0100 add missing dep on jpeg Change-Id: I0732f23dd9daa0c3a1f138011b0db17b36b729d1 Reviewed-on: https://gerrit.libreoffice.org/32179 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit 5bc94f60379029f343581bef8aea3e350c7db2e4) Reviewed-on: https://gerrit.libreoffice.org/36370 Tested-by: Michael Stahl <mst...@redhat.com> commit 777a6512f101c0dc027b28d1d931535be4613f48 Author: Caolán McNamara <caol...@redhat.com> Date: Fri Apr 7 16:55:37 2017 +0100 Resolves: tdf#102286 lets not crash on null pFrame this is the FlyEmbeddedPrt case ensure we don't end up with a null pFrame at return time (cherry picked from commit 5ce387c4812466e6752b434cf0f5a54f98c6a147) Change-Id: I68ff6f0a36462cffc47d774865e69041c4dd15a8 Reviewed-on: https://gerrit.libreoffice.org/36279 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> commit 96b1251ff4867c23f9a761cc2d306d72720c68bf Author: Caolán McNamara <caol...@redhat.com> Date: Fri Apr 7 16:18:22 2017 +0100 Resolves: tdf#106732 the intent was surely to return a const ref Change-Id: Iaaa1f76a689645adaebf4fe5b87003ad238f71f2 (cherry picked from commit a7d008a8dfdc0a8b42061329b5e756b1b034abaf) Reviewed-on: https://gerrit.libreoffice.org/36278 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> commit 7554fe23104a1b2f42a846116bbc6605a4fd6c47 Author: Eike Rathke <er...@redhat.com> Date: Thu Apr 6 21:15:27 2017 +0200 Resolves: tdf#100011 (re-)add ocCeil and ocFloor .xls(x) export mappings This is a combination of 2 commits. Resolves: tdf#100011 (re-)add ocCeil and ocFloor .xls(x) export mappings ... for CEILING and FLOOR that were lost when introducing CEILING.MATH and FLOOR.MATH which are semantically identical, but the export needs a distinct known mapping otherwise the function is stored as a macro call, which Excel dislikes. (cherry picked from commit ea01a08763e56a7de66f0c24655a627669c8a7f7) these FUNCFLAG_EXPORTONLY need also FUNCFLAG_MACROCALL_NEW, tdf#100011 related Maybe one day we'll actually use these tables also for export capabilities ... (cherry picked from commit 4dd95cadcd330aee49b3c84d3e336b808217af46) f3d55ec008e321d95b21e0d284c7d58d13a2399b Change-Id: Id371c1732984a8e5567f74fd265b9aee88fb1898 Reviewed-on: https://gerrit.libreoffice.org/36234 Reviewed-by: Bartosz Kosiorek <gan...@poczta.onet.pl> Tested-by: Bartosz Kosiorek <gan...@poczta.onet.pl> commit 3cb23d414066ca0d9c70d8c9a1c2ed3ac51c8115 Author: Caolán McNamara <caol...@redhat.com> Date: Thu Apr 6 15:12:10 2017 +0100 ofz: treat short properties as run end Change-Id: I00a5bab63663e2dde43825707e84568fca6aa594 Reviewed-on: https://gerrit.libreoffice.org/36218 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit 4d7b348773ec02b82c7d754f2a6d5942fd2e7b8e Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Mar 13 12:45:07 2017 +0100 tdf#106456, don't try to use invalid ranges in external ref code Reviewed-on: https://gerrit.libreoffice.org/35132 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> (cherry picked from commit 951fcc6556346e19a028443c70dea27d0cbc9c36) Backported. Change-Id: I38e622df87dd4b5e37dd248c5181978e13890fda Reviewed-on: https://gerrit.libreoffice.org/35188 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Jenkins <c...@libreoffice.org> commit 64452f1b05347ee4dbd62ebe8700d9a69687f37e Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Wed Mar 22 21:21:31 2017 -0400 tdf#105908: restore previously deleted range references upon undo. Reviewed-on: https://gerrit.libreoffice.org/35607 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Kohei Yoshida <libreoff...@kohei.us> (cherry picked from commit 749405af4fc38e0c16dc7e860d23a13dfceb4e40) Conflicts: sc/source/core/tool/interpr6.cxx Change-Id: If1932a5eb10da4c50fbcc3329af75f2e7a0a5137 Reviewed-on: https://gerrit.libreoffice.org/35673 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Eike Rathke <er...@redhat.com> commit 839c8a606699be515162dda5a12a40c5eb47f71e Author: Caolán McNamara <caol...@redhat.com> Date: Tue Apr 4 19:13:12 2017 +0100 ofz: check olst sprm for valid ANLD payload len Change-Id: Ic1b6681a3f48ef0fe3f52eda9db8b7bc003ded55 (cherry picked from commit 98151bf95bda8d647310bdba6936dc6b388b05de) Reviewed-on: https://gerrit.libreoffice.org/36099 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> commit 961859dfe28ea37d8c998070f00fb1bdafe5e342 Author: Caolán McNamara <caol...@redhat.com> Date: Tue Apr 4 12:31:04 2017 +0100 ofz: guard against bogus sprm len Change-Id: I9b4074e1024753549f468f427afbfdf9cd01b674 (cherry picked from commit d30fb62f4f1022ae6294e246974d0018596cf8ec) ofz: guard harder against bogus sprm len Change-Id: Ic82526e1454b24f094d3deee89647e88760bc44b (cherry picked from commit 924624b40a97d6925f66374259c2c21707805fcd) Reviewed-on: https://gerrit.libreoffice.org/36079 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit c5ea60861887be63a3b8da104ab0c2d7626287c4 Author: Caolán McNamara <caol...@redhat.com> Date: Mon Apr 3 21:22:00 2017 +0100 ofz: check anldPap sprm for valid ANLD payload len Change-Id: Ie034e3b37e01c29cf19fe8ad78b1121f6eadecb2 Reviewed-on: https://gerrit.libreoffice.org/36053 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> (cherry picked from commit 29cf858a971273039fff50808082f231dbd43c92) Reviewed-on: https://gerrit.libreoffice.org/36076 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit d47b4c3ad5c02716526caa1782f85913849e2dab Author: Caolán McNamara <caol...@redhat.com> Date: Sun Apr 2 11:31:10 2017 +0100 ofz: check bounds on read Change-Id: I07779bec876b90e36f20a81d6dbf06ae727edf85 (cherry picked from commit fb05611064e12c8eda09bc32c42544cde8c2ab49) Reviewed-on: https://gerrit.libreoffice.org/36019 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit 3cb3b670065ecca674e4ee315c0a28bfbeda11af Author: Caolán McNamara <caol...@redhat.com> Date: Mon Apr 3 20:36:06 2017 +0100 ofz: check anlv text bounds Change-Id: I6288aae2d439cde6a2b95c005a2090f73e21bb7a (cherry picked from commit 3feabd87ad8066b45b55d61cd72684e47fd79082) Reviewed-on: https://gerrit.libreoffice.org/36052 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit ef5e53ffe181199a3a6a7d0ba2c7d3cb8b88e03d Author: Szymon KÅos <eszka...@gmail.com> Date: Wed Mar 29 21:36:57 2017 +0200 tdf#98416 libcmis: Google Drive 2FA fix Change-Id: Ice6758d8e9bc0ece57e038561376e7a6d67ab616 Reviewed-on: https://gerrit.libreoffice.org/35880 Reviewed-by: David Tardon <dtar...@redhat.com> Tested-by: David Tardon <dtar...@redhat.com> (cherry picked from commit 8d1a56c206e5c2ed6c331049198bb8ebc6176171) Reviewed-on: https://gerrit.libreoffice.org/35929 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> commit 4be7c395b29f9aefd9ed642a2bf5268a8277d09b Author: Michael Stahl <mst...@redhat.com> Date: Thu Mar 30 23:11:41 2017 +0200 writerfilter: DOCX import: fix handling of w:hideMark vs. w:vMerge The problem is that Writer's layout can't handle the case where cells are vertically merged and the last row has a fixed height; the vertically merged cell will grow up to the height of the other cells in the non- fixed rows plus the fixed row height, but no larger. So for now, avoid setting fixed row heights in this case. (regression from d1278ef4849661b9ae0eb7aaf4d74fbf91ccaf11) Change-Id: Iac3689e0bb0d5b8a62115ca0fb1f2c553a6e6bbc (cherry picked from commit c382c998ffdaf80c10a3f078fb4f0a37224d1158) Reviewed-on: https://gerrit.libreoffice.org/35960 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> (cherry picked from commit 7d7d21cfa53c8e80fd4dd0938579d8377da5a840) Reviewed-on: https://gerrit.libreoffice.org/35971 commit f7a135b2473e58a6980fd4fd874a478f00aad91d Author: Patrick Jaap <p...@mail.de> Date: Wed Mar 29 11:35:25 2017 +0200 tdf#101627 disable shrinking for footer textboxes the shrinking patch a4dee94afed9ade6ac50237c8d99a6e49d3bebc1 causes problems, if the textboxes are anchored in the footer. Therefore, disable it in this case. For details, see comments in bug tracker. Change-Id: I117a99041ff67c19a9de17803ff7864c62afdb50 Reviewed-on: https://gerrit.libreoffice.org/34517 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit 80b9b6761e8cb974e0cdc0c7be0eb95f8745d86f) Reviewed-on: https://gerrit.libreoffice.org/35845 Tested-by: Michael Stahl <mst...@redhat.com> commit 6dab83b83613de210175334f6fc68d1478acf7ad Author: Caolán McNamara <caol...@redhat.com> Date: Fri Mar 31 11:23:04 2017 +0100 ofz#974 check SetBorder bounds like the other maHorizontalBorders users Change-Id: Iac113433ac2317ddfebc68ed793c481384d56551 Reviewed-on: https://gerrit.libreoffice.org/35966 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> commit a38bb370b4046ca65bf77152e79a4abf4ee1cc23 Author: Michael Stahl <mst...@redhat.com> Date: Wed Mar 29 12:03:50 2017 +0200 cli_ure: fix another bad _WIN64 check (related tdf#94265) Same problem as commit 2aa20cfb7a11dd8d86372af4065a5887a0b752ca Change-Id: I02160c53870a021c742babf358e0d6172557ef21 (cherry picked from commit cfaba15c589f882cc0bcce5cd07bdf3d30f547f6) Reviewed-on: https://gerrit.libreoffice.org/35839 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Stephan Bergmann <sberg...@redhat.com> commit a99ef8c9868c1f8958204824cab9c17264a1a966 Author: Julien Nabet <serval2...@yahoo.fr> Date: Thu Mar 30 07:19:21 2017 +0200 tdf#106857: use SfxInt32Item for ATTR_SNAPLINE and avoid crash with this bt: 3 0x00007ffff7449ef2 in __GI___assert_fail (assertion=assertion@entry=0x7ffff1f0cdd0 "dynamic_cast<const CntUInt32Item*>(&rItem) != nullptr", file=file@entry=0x7ffff1f0cce8 "/home/julien/lo/libreoffice/svl/source/items/cintitem.cxx", line=line@entry=232, function=function@entry=0x7ffff1f0d0a0 <CntUInt32Item::operator==(SfxPoolItem const&) const::__PRETTY_FUNCTION__> "virtual bool CntUInt32Item::operator==(const SfxPoolItem&) const") at assert.c:101 4 0x00007ffff1dd7ceb in CntUInt32Item::operator== (this=0x7fffffff2380, rItem=...) at /home/julien/lo/libreoffice/svl/source/items/cintitem.cxx:232 5 0x00007ffff1e0136e in SfxItemSet::Put (this=0x7fffffff2490, rItem=..., nWhich=<optimized out>) at /home/julien/lo/libreoffice/svl/source/items/itemset.cxx:510 6 0x00007fffc68c7ba1 in SfxItemSet::Put (this=this@entry=0x7fffffff2490, rItem=...) at /home/julien/lo/libreoffice/include/svl/itemset.hxx:131 7 0x00007fffc68d9052 in SdSnapLineDlg::GetAttr (this=0x55555bd802c0, rOutAttrs=SfxItemSet of pool 0x55555779b070 with parent 0x0 and Which ranges: [(28282, 28284)] = {...}) at /home/julien/lo/libreoffice/sd/source/ui/dlg/dlgsnap.cxx:159 Change-Id: Iebaf8d773a532f64c224c0371382132aa4a8d2eb Reviewed-on: https://gerrit.libreoffice.org/35885 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Julien Nabet <serval2...@yahoo.fr> (cherry picked from commit e1ff3782cc0bef951e7e5f0166c2b2395eaee26b) Reviewed-on: https://gerrit.libreoffice.org/35896 Reviewed-by: Michael Stahl <mst...@redhat.com> commit 601d8ede80e663707564415c9937bb36739a4fe0 Author: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> Date: Wed Mar 29 22:26:05 2017 +0200 update credits Change-Id: I9175fb568d06688344e5a2ad8759f57563f9b229 (cherry picked from commit 261d9990228f4784f9a109e80657768b956e3d0d) commit 0e0e607f46ebf35cede2df4554f1bcc279504d6f Author: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> Date: Wed Mar 29 19:25:04 2017 +0200 changelog creation: "command | > file" doesn't fly Change-Id: If270d509fbbad6a390ab61345bd1b14ead6ccc21 (cherry picked from commit 9ec6519650280c8cda33ff921926d42840ef89c6) commit 39ded6de301c0d1fde1f43f921f8088209547b28 Author: ComputingDwarf <rechen...@googlemail.com> Date: Sun Mar 12 17:38:59 2017 +0100 tdf#94265: Correct the error Always _WIN32 is defined, even in Win64. So the check must be to _WIN64 and then to _WIN32. Hope no more lines like this in code. Can you test programs with SDK 64 Bit? (cherry picked from commit 3b2863596f26a8d32a5bc322bbbf51cad403c9fb) Change-Id: Ibc6d486fba2077e924efe584d74659f4fe5ab525 Reviewed-on: https://gerrit.libreoffice.org/35838 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit b64f603a9f90c490175be8b281fd10ee1c475617 Author: Michael Meeks <michael.me...@collabora.com> Date: Tue Mar 28 10:35:50 2017 +0100 Attempted fix for mirrored geometry crasher. Only plausible cause is pWindow->GetParent() being null, while we have a pParent which has to be valid. http://crashreport.libreoffice.org/stats/crash_details/6161398d-17b6-4a93-aa70-a559efa07868 Code was initially introduced in this form: commit 4716735ba7d0ad133ff018481f94d6b4f201bbd9 Author: Stephan Schäfer <s...@openoffice.org> Date: Thu Sep 19 15:46:19 2002 +0000 #103362# improve positioning and resizing of system windows No public report, sadly. And modified by commit fba46c6efd08d50fee92cc11546f3ed253a57af8 Author: Chris Sherlock <chris.sherloc...@gmail.com> Date: Mon Feb 3 16:46:04 2014 +1100 fdo#74424 Use Window::GetOutDev() to access ImplReMirrored() Part of the decoupling of Window from OutputDevice. We now get he Window's OutputDevice instance and manipulate this. Do not rely on the inherited function. where the GetParent()/pWindow->GetParent() problem surfaces Change-Id: Ia261028a4719525135e3fe4b00074427c1d9df6c Reviewed-on: https://gerrit.libreoffice.org/35796 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Michael Meeks <michael.me...@collabora.com> (cherry picked from commit d93b8268da982ad26db9e03156ce9b89f3410486) Reviewed-on: https://gerrit.libreoffice.org/35828 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> commit e2aee57fe292a9b90acc70d2df8e1daabc23c95b Author: Caolán McNamara <caol...@redhat.com> Date: Tue Mar 28 14:45:00 2017 +0100 valgrind: use of uninitialized values Change-Id: I5b8c6d4d4576fd88dbffdfc710cbd9b2e9429942 (cherry picked from commit b7152aff51665bc802af66e6e599a89e0344c92f) Reviewed-on: https://gerrit.libreoffice.org/35808 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> commit c00db1075c0d7b7d23a43e1466aeb29d4c797de2 Author: Juergen Funk <juergen.funk...@cib.de> Date: Wed Apr 12 11:26:10 2017 +0200 tdf#106942 Wrong message when lock file is empty or corrupt trac#19027 1. Erase empty or corrupt lockfile, when reading it fails and skip "Locked Document Dialog" in that case 2. Show Dialog (use LockFileIgnoreRequest -> LockFailedQueryBox) when create lock file is not possible. Two Dialogs: "lock file create error" and "empty lockfile is present" Set the document to read-only when creating lockfile is not possible. If lockfile is corrupt or empty, inform the user. They can interrupt loading the document or open it read-only, which also erases the corrupt lock file after closing the document 3. Handling for the two Dialogs Use LockFileIgnoreRequst for create lockfile error and add a new LockFileCorruptRequest, (lock file is corrupt). Change and generate new messages for both dialogs in english Reviewed-on: https://gerrit.libreoffice.org/36658 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Katarina Behrens <katarina.behr...@cib.de> (cherry picked from commit 6ca3b3648e25ae9d4d2d29a0df83349198ec3f5e) Conflicts: include/sfx2/docfile.hxx sfx2/source/doc/docfile.cxx uui/source/ids.hrc Change-Id: I35c377f85b5113e8ffb89d83b9544b8ebc81d89f commit 070b6d5f5b778b4c8e8436da025f1351c44e55d7 Author: Bernhard Widl <bernhard.w...@cib.de> Date: Fri May 12 13:55:50 2017 +0200 tdf#107795 fixed cursor position after inserting input field trac#19716 Reviewed-on: https://gerrit.libreoffice.org/37536 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Michael Stahl <mst...@redhat.com> (cherry picked from commit 408a7e320db978a8f784fa25e35caedf931612c5) Change-Id: I3c063c0393b524132e522914a7a9885c8a9c3b78 commit 215bf8c6a599c159d16989f35fd2ec55984b051d Author: Katarina Behrens <katarina.behr...@cib.de> Date: Wed May 10 15:30:39 2017 +0200 Get string also for external reference to double for operands of '&' In a formula like ='ExtRef1' & 'ExtRef2', or ='LocalValue' & 'ExtRef1' empty string became an operand in concat operation if the referenced external cell was a non-string one. trac#17184 Reviewed-on: https://gerrit.libreoffice.org/37469 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Eike Rathke <er...@redhat.com> (cherry picked from commit 2dd2f3328acd564e5f77efa4fe91d67ac0984e63) Change-Id: I7b0ac5de68349eae85afe48f377e30cab76e3fbf commit 7767008b5223281af2286457e250353863f6ff75 Author: Mike Kaganski <mike.kagan...@collabora.com> Date: Sun Dec 11 00:33:07 2016 +0300 tdf#63593: revert 88f91adf266f19659014df22e09ce6c6761fb6f1 This patch caused a regression that on creation of a new sheet while there's an unfinished edit of a cell, by using "+" in bottom left corner, that edit is committed to newly created sheet instead of that in which it was performed. Also, fixing original problem (tdf#42432), it forced the pending edit on deleted page to go to an existing page, which could overwrite existing data without being noticed (dataloss). Reverting the patch does not reintroduce the original problem that it intended to fix (a crash) in master. Change-Id: I696a85ec9d08ebb3621ebdbce4d9f71eadcdb2c2 Reviewed-on: https://gerrit.libreoffice.org/31843 Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrh...@googlemail.com> (cherry picked from commit 53dbc419b2e886b345a3512cf11e035ff2b7651b) (cherry picked from commit de783e6c3eeb89c1c5e08044e0a0aae046165999) commit f4fad8b154f964c28de787a71705189c7a67430b Author: Juergen Funk <juergen.funk...@cib.de> Date: Thu Dec 8 12:25:50 2016 +0100 Stop question in context of session manager when cancel a frame When shutdown or logout, LO make the question for all open windows, but when you cancel a window the question for the other windows are not necessary, this patch breaks the other questions. in dependency of tdf#104101 trac#19800 Reviewed-on: https://gerrit.libreoffice.org/33311 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> (cherry picked from commit d8ccf8cf7a604cb1df04f23b5b5036fff1d4afdb) Conflicts: framework/inc/services/desktop.hxx Change-Id: I7119317d392ccd808c67fb57f82b1e990062abf2 commit f8a0e1d0431d6a60bd519ea989c16b9084158344 Author: Juergen Funk <juergen.funk...@cib.de> Date: Thu Dec 8 15:41:24 2016 +0100 tdf#104101 Improve the session management handling - Set the current time to the SessionID - Split the SetProperties-Data, and send DeleteProperties for DiscardCommand (above both topic is the same as kate and plasma-desktop to do) - in statusChange the saveDone was not called, and call only once the saveDone - in shutdownCanceled must be send the saveDone too trac#198000 Reviewed-on: https://gerrit.libreoffice.org/33215 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> (cherry picked from commit f57424cc4c0dd68083c7935ce8a9b795625cf84c) Change-Id: I42855c75b88b5d651ef8091947e359dc2c3f9209 commit 78a84d6ac43ed4dceecade9361c9b708bd59076b Author: Juergen Funk <juergen.funk...@cib.de> Date: Thu Dec 8 15:37:10 2016 +0100 Expand and improve the output log in Session-Management in dependency of tdf#104101 trac#19800 Reviewed-on: https://gerrit.libreoffice.org/33034 Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> Tested-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> (cherry picked from commit fe9c6fa5a43177f4d77766f29d44784e17f53320) Conflicts: include/sal/log-areas.dox vcl/source/app/session.cxx Change-Id: I799f81adf4e4751fb505c84aa075363acf70f5a7
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits