• Chris Sherlock's avatar
    vcl: fdo#86307 removed Solaris workaround from #i64273# · 29dd2977
    Chris Sherlock yazdı
    Basically, they were working around issues with XmbTextListToTextProperty
    returning garbage characters, which showed on window titles.
    
    The comment in the code is far more informative than the bug report:
    
     /* #i64273# there are some weird cases when using IIIMP on Solaris
        where for unknown reasons XmbTextListToTextProperty results in
        garbage. Test one string once to ensure safety.
    
        FIXME: This must be a bug in xiiimp.so.2 somewhere. However
        it was not possible to recreate this in a small sample program.
        This reeks of memory corruption somehow.
     */
    
    Now I did a bit of research (aka "Google search") and discovered #i6759#
    which was logged in 2002. This shows that the codebase was using __XOpenIM
    in xiimp.so.2, which probably caused this issue. From the bug:
    
        I've tried to look into this problem and have found out, that
        apparently the
        use of the '__XOpenIM' subroutine from the
        /usr/openwin/lib/locale/common/xiiimp.so.2
        shared library causes this problem.  When running on Solaris, OO tries to
        dlopen() the above mentioned shared library, looks up the  '__XOpenIM'
        symbol in it and calls this function ( function XvaOpenIM() in file
        vcl/unx/source/app/i18n_wrp.cxx ).
    
        There's alternate code in OO that just calls the X11 documented function
        'XOpenIM()' instead.  This is enabled by running OO 1.0.x with the
        environment variable USE_XOPENIM defined to some value.  When running
        OO with
    
          env USE_XOPENIM=1 ~/OpenOffice.org1.0.1/soffice
    
        the problem does *not* occur any more and xprop for the same two windows
        mentioned in the initial bug report shows:
    
        % xprop |egrep '_NAME|_LOCALE'
        WM_LOCALE_NAME(STRING) = "de_DE..ISO8859-15"
        WM_ICON_NAME(STRING) = "unbenannt1 - OpenOffice.org 1.0.1 "
        WM_NAME(STRING) = "unbenannt1 - OpenOffice.org 1.0.1 "
    
        % xprop | egrep '_NAME|_LOCALE'
        WM_LOCALE_NAME(STRING) = "de_DE..ISO8859-15"
        WM_ICON_NAME(STRING) = "Umbruch einfÿ77777774gen"
        WM_NAME(STRING) = "Umbruch einfÿ77777774gen"
    
        As far as I can tell, the use of '__XOpenIM' frees some memory inside the
        Solaris X11 shared library that is still in use by the X11 character set
        conversion routines. Or in other words: the X11 character set conversion
        routines operate on freed memory, after __XOpenIM was called.
    
        These character set conversion routines are used by
        XmbTextListToTextProperty
        ( in WMAdaptor::setWMName() in file vcl/unx/source/app/wmadaptor.cxx ) and
        it seems they still access memory that was freed by the use of
        '__XOpenIM'.
    
    Now later on, Caolan removed XvaOpenIM() in commit
    4d6dab2c and then later committed a patch that
    removed the ability to use the environment variable USE_XOPENIM as it wasn't
    necessary anymore (commit: 8b028754). I'd say
    that this was probably fixed in one of these changes.
    
    Change-Id: I20effd77e0cdcde26d1be756cc6231f30f35118e
    29dd2977
Adı
Son kayıt (commit)
Son güncelleme
.git-hooks Loading commit data...
UnoControls Loading commit data...
accessibility Loading commit data...
android Loading commit data...
animations Loading commit data...
apple_remote Loading commit data...
avmedia Loading commit data...
basctl Loading commit data...
basebmp Loading commit data...
basegfx Loading commit data...
basic Loading commit data...
bean Loading commit data...
bin Loading commit data...
binaryurp Loading commit data...
bridges Loading commit data...
canvas Loading commit data...
chart2 Loading commit data...
cli_ure Loading commit data...
codemaker Loading commit data...
comphelper Loading commit data...
compilerplugins Loading commit data...
config_host Loading commit data...
configmgr Loading commit data...
connectivity Loading commit data...
cppcanvas Loading commit data...
cppu Loading commit data...
cppuhelper Loading commit data...
cpputools Loading commit data...
crashrep Loading commit data...
cui Loading commit data...
dbaccess Loading commit data...
desktop Loading commit data...
dictionaries @ caf64fa3
distro-configs Loading commit data...
drawinglayer Loading commit data...
dtrans Loading commit data...
editeng Loading commit data...
embeddedobj Loading commit data...
embedserv Loading commit data...
eventattacher Loading commit data...
extensions Loading commit data...
external Loading commit data...
extras Loading commit data...
filter Loading commit data...
forms Loading commit data...
formula Loading commit data...
fpicker Loading commit data...
framework Loading commit data...
helpcompiler Loading commit data...
helpcontent2 @ b9e9fb3e
hwpfilter Loading commit data...
i18nlangtag Loading commit data...
i18npool Loading commit data...
i18nutil Loading commit data...
icon-themes Loading commit data...
idl Loading commit data...
idlc Loading commit data...
include Loading commit data...
instsetoo_native Loading commit data...
io Loading commit data...
ios Loading commit data...
javaunohelper Loading commit data...
jurt Loading commit data...
jvmaccess Loading commit data...
jvmfwk Loading commit data...
l10ntools Loading commit data...
librelogo Loading commit data...
libreofficekit Loading commit data...
lingucomponent Loading commit data...
linguistic Loading commit data...
lotuswordpro Loading commit data...
m4 Loading commit data...
mysqlc Loading commit data...
nlpsolver Loading commit data...
o3tl Loading commit data...
odk Loading commit data...
offapi Loading commit data...
officecfg Loading commit data...
oovbaapi Loading commit data...
oox Loading commit data...
osx Loading commit data...
package Loading commit data...
postprocess Loading commit data...
pyuno Loading commit data...
qadevOOo Loading commit data...
readlicense_oo Loading commit data...
registry Loading commit data...
remotebridges Loading commit data...
reportbuilder Loading commit data...
reportdesign Loading commit data...
ridljar Loading commit data...
rsc Loading commit data...
sal Loading commit data...
salhelper Loading commit data...
sax Loading commit data...
sc Loading commit data...
scaddins Loading commit data...
sccomp Loading commit data...
scp2 Loading commit data...
scripting Loading commit data...
sd Loading commit data...
sdext Loading commit data...
setup_native Loading commit data...
sfx2 Loading commit data...
shell Loading commit data...
slideshow Loading commit data...
smoketest Loading commit data...
solenv Loading commit data...
soltools Loading commit data...
sot Loading commit data...
starmath Loading commit data...
stoc Loading commit data...
store Loading commit data...
svgio Loading commit data...
svl Loading commit data...
svtools Loading commit data...
svx Loading commit data...
sw Loading commit data...
swext Loading commit data...
sysui Loading commit data...
test Loading commit data...
testtools Loading commit data...
toolkit Loading commit data...
tools Loading commit data...
touch Loading commit data...
translations @ 7a93a556
tubes Loading commit data...
ucb Loading commit data...
ucbhelper Loading commit data...
udkapi Loading commit data...
unodevtools Loading commit data...
unoidl Loading commit data...
unoil Loading commit data...
unotest Loading commit data...
unotools Loading commit data...
unoxml Loading commit data...
ure Loading commit data...
uui Loading commit data...
vbahelper Loading commit data...
vcl Loading commit data...
winaccessibility Loading commit data...
wizards Loading commit data...
writerfilter Loading commit data...
writerperfect Loading commit data...
xmerge Loading commit data...
xmlhelp Loading commit data...
xmloff Loading commit data...
xmlreader Loading commit data...
xmlscript Loading commit data...
xmlsecurity Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.gitreview Loading commit data...
COPYING Loading commit data...
COPYING.LGPL Loading commit data...
COPYING.MPL Loading commit data...
Library_merged.mk Loading commit data...
Library_urelibs.mk Loading commit data...
Makefile.fetch Loading commit data...
Makefile.gbuild Loading commit data...
Makefile.in Loading commit data...
README.Android Loading commit data...
README.Code Loading commit data...
README.Solaris Loading commit data...
README.cross Loading commit data...
Repository.mk Loading commit data...
RepositoryExternal.mk Loading commit data...
RepositoryFixes.mk Loading commit data...
RepositoryModule_build.mk Loading commit data...
RepositoryModule_host.mk Loading commit data...
TEMPLATE.SOURCECODE.HEADER Loading commit data...
autogen.sh Loading commit data...
config.guess Loading commit data...
config.sub Loading commit data...
config_host.mk.in Loading commit data...
configure.ac Loading commit data...
download.lst Loading commit data...
g Loading commit data...
install-sh Loading commit data...
leak-suppress.txt Loading commit data...
lo.xcent.in Loading commit data...
logerrit Loading commit data...
unusedcode.README Loading commit data...
unusedcode.easy Loading commit data...
unusedcode.exclude Loading commit data...