[prev in list] [next in list] [prev in thread] [next in thread]
List: haiku-bugs
Subject: [haiku-bugs] Re: [Haiku] #18868: Desktop becomes unusable after updating noto package
From: Haiku <trac () haiku-os ! org>
Date: 2024-03-29 22:23:52
Message-ID: 062.73b95ae7ffb816ab48c5ae7e4717b16c () haiku-os ! org
[Download RAW message or body]
--===============3293804719747353945==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
#18868: Desktop becomes unusable after updating noto package
---------------------------------+----------------------------
Reporter: davidkaroly | Owner: axeld
Type: bug | Status: new
Priority: critical | Milestone: Unscheduled
Component: Servers/app_server | Version: R1/Development
Resolution: | Keywords:
Blocked By: | Blocking:
Platform: All |
---------------------------------+----------------------------
Comment (by madmax):
Replying to [comment:1 waddlesplash]:
> [...] guess that, since the font files got deleted, their mmap areas
were trashed.
That shouldn't happen, like deleting a file doesn't really remove it until
all references are closed? I did a quick mmap test and to my limited
knowledge I could access the data until the call to munmap, even if the
file came from a package and I uninstalled or updated it while reading.
There are probably quite a few issues here.
For starters, as far as I know, a BFont doesn't pin a server font (I
*think* setting it as a view's font does). So using BFont's
TruncateString, StringWidth and company will pass the app server a font id
that may not exist anymore, an error is returned, the arrays are not
touched and havoc ensues.
In fact, you don't even need to delete a font to see some client effects:
open a bunch of windows for an expanded deskbar view and change the menu
font size in appearance. The font doesn't change, as the BMenu sets it on
init (you can also see that in other already open apps vs new ones). The
space each window item takes does change, though, as it is recalculated
when drawn using the desktop settings and not the font really used. And
the total height taken by all the items is updated somewhere else, so
you'll get empty space at the bottom if you reduced font size or lose
entries if you increased it, until that update is triggered.
And then there may be problems in app_server. If a style is still
referenced, it will not be removed on uninstall. Then the insertion would
fail on installation of the new version, as we already have it. And I
guess (but will have to check it) the references may later disappear
taking the style with them.
With respect to be_plain_font and friends, the client BFont is initialized
on app initialization. The server does get a reference too, so I think
those should continue working, unless there's some AS_SET_SYSTEM_FONT
message involved.
--=20
Ticket URL: <https://dev.haiku-os.org/ticket/18868#comment:2>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.
--===============3293804719747353945==--
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic