https://bugs.freedesktop.org/show_bug.cgi?id=50372

--- Comment #2 from Terrence Enger <[email protected]> 2012-05-28 
07:14:43 PDT ---
I have tried a couple of hacks which only deferred the failure to
later points in execution.

(*) The first of these hacks was equivalent to the patch you propose:
    an early return from OKeySet::refreshRow if m_aKeyIter equals
    m_aKeyMap.end().  This makes OKeySet::getBookmark() fail with
    message "getBookmark is possible only when we stand on a valid
    row!".

    Note that the test isAfterLast() early in OKeySet::refreshRow() is
    not a sufficient guard against past-the-end iterator because
    OKeySet::isAfterLast() looks first at m_bRowCountFinal.  So,
    beyond the present problem, I wonder whether there is some reason
    to expect that OKeySet::refreshRow() is never called with false
    m_bCountFinal and m_aKeyIter equal m_aKeyMap.end(); I think this
    combination would make the routine fail every time.

(*) The second was to replace the increment of m_aKeyIter with a
    decrement before KeySet::refreshRow() does the recursive call.
    (Yes, the table has two rows.  And I *think* the first element of
    m_aKeyMap is a dummy anyway, existing just to allow a
    before-the-first test like the after-the-last test which STL
    provides.  So, I guessed that at worst this would result in an
    return from the recursive call because isBeforeFirst().)  I think
    this led to a failure within OSL_ENSURE within OKeySet::getInt(),
    KeySet.cxx line 1441.  (Just "I think" because I made a mess of my
    notes and silly me was not collecting a typescript.)


As the program seems to have fetched all two rows of the table, I
suspect that m_aRowCountFinal should be true--maybe, perhaps.  But,
all I know about that variable is its name and the fact that it seems
to be used a lot.  And the result of my first hack suggests that that
might not be sufficient to fix the problem anyway.


>From my comment on bug 47520, it looks like LO as of 2012-04-01 did
not crash opening this table.  As I am running a 32-bit system, I
cannot use bibisect.  Besides, bibsect is only updated to late April,
IIRC.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to