* The tree does keep a reference to the inode as well as long as it is part
of a transaction.
* Even if it wouldn't have done it (and would not have triggered the panic),
Haiku would likely have crashed, as the inode (and therefore its tree) was
already deleted at the time when the transaction discarded its listeners.
This implements an html5 rendering engine.
Inspired by the Broadway GDK backend for Gnome.
Work in progress. For now it just connects and dumps debug output.
This bug affected views added while the window was hidden, and would
result in that view not being hidden when the group was collapsed for
the first time.
When a BTwoDimensionalLayout has no visible elements, it has a max size
of B_SIZE_UNLIMITED in both dimensions. In this case, we want it to
shrink down to just the insets.
I.e. once there are no more notifications in the AppGroupView, we get
the NotificationWindow to delete it. As a result of this change, we no
longer need the AppGroupView.cpp _ResizeViews() method.
This is preferable to having them kick around for as long as the server
is running. They don't yet close when all of the notifications for the
view time out, that's coming next.
* as pointed out by diver: libgutenberg has been configured to
expect its data files in /system/data, but we used to install them
into common.
This way, the Gutenberg printer add-on actually shows some printers.
* The pointer to the ICU converter that's kept in TLS needs to be
reset (to NULL) immediately after closing it, as opening a new
container may fail, leaving a dangling pointer to a now closed
container in the TLS value.
Fixes#8361 & the userland cause of #8430.
* Calling FindBlockRun() would only work for the direct range anyway, as it
would need to call into the block cache for anything else.
* bfs_block_runs now accepts a few more arguments that make finding an offset
much easier.
If the refresh limits only allowed a single refresh, the menu item constructed
had no BMessage. This caused _UpdateRefreshControls() to crash when attempting
to match the current refresh rate to the item. For simplicity, give it a message
containing the fixed refresh rate just as in all other cases. Should finally
fix#8431.
* Added a new CachedNode::SetTo() variant that actually returns an error code.
* Only bail out if there was an actual I/O error, not already if the offset
was invalid.
* This should help fixing some corruption corner cases.
* The node might not be a normal tree node, so we must not check it before
writing.
* Also, it's always a good idea to check if the function you called didn't
succeed.
* This fixes a crashing bug when running checkfs in some rare circumstances.
* This would cause "transaction too large" messages, and repairing the index
would actually be thrown away.
* We now properly finish/restart transactions instead which is actually
working.
* Removed the misleading Split() method altogether, as it's not even used
anywhere (not very surprising given that it doesn't do what its name
suggests).
* This should not have harmed normal operation (as an Inode is only destroyed
when it is no longer being used), but the fs_shell could run out of
semaphores easily.