Err, s/crashes/errors-in-log/g.  Mea culpa.

On Sat, Jul 20, 2024 at 2:52 PM Jacob Peck <[email protected]> wrote:

> The vr-related crashes are already happening in Leo, I reported a bug on
> it earlier this week: https://github.com/leo-editor/leo-editor/issues/4009
>
> I suspect it's the same bug, and nothing new your scripting and tests are
> causing :)
>
> Thanks for the explanations and patience -- I was caught up in the
> CrowdStrike mess yesterday and am severely lacking sleep...
>
> Jake
>
> On Sat, Jul 20, 2024 at 1:14 PM Thomas Passin <[email protected]> wrote:
>
>> The most obvious way is to use try...except blocks.
>>
>> if vr_splitter:
>>     vr_splitter.deleteLater()
>>
>> would become:
>> try:
>>     vr_splitter.deleteLater()
>> except:
>>     pass
>>
>> Presumably this would not prevent unhooking the vr object from Leo's
>> event syste,
>> On Saturday, July 20, 2024 at 11:50:44 AM UTC-4 Edward K. Ream wrote:
>>
>>> On Sat, Jul 20, 2024 at 9:36 AM Jacob Peck wrote:
>>>
>>> > can't you [do something general :-)]
>>>
>>> I usually approach tricky tasks by writing specific code first.
>>>
>>> Here is a prototype undoer for the "quadrants" layout. It's in a
>>> separate node for prototyping:
>>>
>>> h = c.hash()
>>> pc = g.app.pluginsController
>>> gui = g.app.gui
>>> vr_splitter = gui.find_widget_by_name(c, 'vr-body-splitter')
>>> vr3_splitter = gui.find_widget_by_name(c, 'vr3-body-splitter')
>>> body_frame = gui.find_widget_by_name(c, 'bodyFrame')
>>> parent = (
>>>     vr_splitter.parent() if vr_splitter
>>>     else vr3_splitter.parent() if vr3_splitter
>>>     else None
>>> )
>>> if vr_splitter:
>>>     vr_splitter.deleteLater()
>>> if vr3_splitter:
>>>     vr3_splitter.deleteLater()
>>> if parent:
>>>     parent.addWidget(body_frame)
>>>     parent.setSizes([100_000] * len(parent.sizes()))
>>>
>>> Notice that there may be *two* body splitters, now *each with its own
>>> separate name*.
>>>
>>> This works, as far as the gui goes, but deleting the splitters causes
>>> repeated crashes both the VR and VR3 plugins:
>>>
>>> Traceback (most recent call last):
>>>  File "C:\Repos\leo-editor\leo\core\leoPlugins.py", line 348, in
>>> callTagHandler
>>>     result = handler(tag, keywords)
>>>  File "C:\Repos\leo-editor\leo\plugins\viewrendered.py", line 363, in
>>> onClose
>>>     vr.deleteLater()
>>> RuntimeError: wrapped C/C++ object of type ViewRenderedController has
>>> been deleted
>>>
>>> Traceback (most recent call last):
>>>   File "C:\Repos\leo-editor\leo\core\leoPlugins.py", line 348, in
>>> callTagHandler
>>>     result = handler(tag, keywords)
>>>              ^^^^^^^^^^^^^^^^^^^^^^
>>>   File "C:\Repos\leo-editor\leo\plugins\viewrendered3.py", line 1475, in
>>> onClose
>>>     vr3.deleteLater()
>>> RuntimeError: wrapped C/C++ object of type ViewRenderedController3 has
>>> been deleted
>>> ...
>>>
>>> These crashes aren't too surprising, but fixing them is another matter
>>> :-)
>>>
>>> *Summary*
>>>
>>> My usual method is to generalize *after* I know all the details for a
>>> *particular* task.  YMMV.
>>>
>>> Edward
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "leo-editor" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/leo-editor/72efebb1-840e-4c1c-95d8-3f8698d9d627n%40googlegroups.com
>> <https://groups.google.com/d/msgid/leo-editor/72efebb1-840e-4c1c-95d8-3f8698d9d627n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/CAJ1i%2BSb4dcfj%3DtgrzFTf%2BkAM_W7a%2Barcz1ZVWAWg%2BO31pUB7GQ%40mail.gmail.com.

Reply via email to