* 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.
* 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.
* There are now two passes in case a corrupted index tree has been found.
* The second pass will clear the affected indices at first, and will then walk
over all inodes again to fill them.
* As a side effect, this will also defragment the indices; ie. the same
mechanism could be used for this some day.
- Fixes a problem in Web+'s autocompletion handler that would
result in it eating things like workspace switching shortcuts
if Web+'s URL input had focus.
- Always initialize other menu item data member.
- Always use refresh_rate_to_string() to generate item labels.
- When searching for the item matching the selected refresh rate,
look for it by the actual refresh rate stored in the item's message
rather than by string comparisons of the label.
- Don't assume the Other menu item exists, since it doesn't in cases
where the refresh rate constraints only allow a single rate.
- Update copyright year.
Fixes#8431.