https://bugs.documentfoundation.org/show_bug.cgi?id=167255

--- Comment #2 from Mike Kaganski <[email protected]> ---
Just uncovered a pre-existing issue, hidden by accident by the previous name
order of modules.

Consider this:

LibraryX
  ModuleA
    Public Const MAXLEN = 10
  ModuleB
    Public X(MAXLEN) As String

In this case, the author expects that the constant MAXLEN defined in ModuleA is
available in ModuleB; but it depends on the order in which the modules are
loaded. And previously, the order was lexicographical (but not because it was a
specification, or explicitly made so in implementation - just because that was
the order in which the module names happened to be added in this specific Basic
source XML); but now NameContainer::getElementNames was reimplemented to return
the order that unordered_map produces (which is implementation-defined), and on
Linux, it returns "Language" before "DialogModul" -> the constants in the
latter are unavailable in the former. On Windows (i.e., with the current
implementation of unordered_map in MS STL), it happens to work.

As a workaround, I will sort the modules in library load procedure; but this is
a general bug.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to