https://bugs.documentfoundation.org/show_bug.cgi?id=49602
--- Comment #18 from Stephan Bergmann <[email protected]> --- (In reply to Stephan Bergmann from comment #2) > Given the comment preceding the (only) use of osl::Profile in > sal/rtl/bootstrap.cxx, > > // Going through osl::Profile, this code erroneously > // does not recursively expand macros in the resulting > // replacement text (and if it did, it would fail to > // detect cycles that pass through here): > > it does not make much sense to merely unwrap that code from using the C++ > osl/profile.hxx wrapper to using the underlying C osl/profile.h > functionality. > > Also note that this is part of the stable URE interface, so cannot be > modified arbitrarily (but can arguably be removed in an incompatible > release, as it is deprecated for a long time and should effectively be > unused by client code). > > So, a useful approach could be: > > * Adapt sal/rtl/bootstrap.cxx to no longer use the OSL Profile > functionality, and in doing so fix the bug described in the comment above. > > * In a commit with "[API CHANGE]" in the commit message, remove the > include/osl/profile.hxx wrapper. > > * In the same or a subsequent "[API CHANGE]" commit, also remove > include/sal/profile.h and replace the implementation with stubs in > sal/osl/all/compat.cxx (which are necessary as the corresponding symbols > could not be removed from sal/util/sal.map without changing the sal SONAME, > which we do not want to do). > > * Document the incompatible changes in the "API Changes" section of the > relevant <https://wiki.documentfoundation.org/ReleaseNotes>. With <https://git.libreoffice.org/core/+/64c0efa33f004cc942f12d4461f8e07fd4c2ff85%5E%21> "Don't consider semantics for three-segment bootstrap var refs erroneous" the "Adapt sal/rtl/bootstrap.cxx to no longer use the OSL Profile functionality" step no longer needs to recursively expand macros (and thus can't run into any expansion cycles it would need to detect, either). -- You are receiving this mail because: You are the assignee for the bug.
