... and rename the structs to reflect this.
* Volume labels contain up to 11 uint16s (11 2-byte UTF-16 characters).
* Filenames are packed into 1 to 17 structs of 15 uint16s each (for a total
of 255 2-byte UTF-16 characters).
* Use 2 different packed structs in the exfat_entry union (same bytes, accessed
with different structs) to access these 2 things.
* Remove a check that assumed the length returned the number of 2-byte UTF-16
characters, i.e. the number of uint16s the string uses. It doesn't, it
returns the number of characters contained in the string which might be 2 or
4-bytes wide. We're doing the conversion wrong for 4-byte UTF-16 characters
anyway, more on that later.
* Use the ZlibDecompressor to decompress the data
* Advertise support in accept-encoding
This should make web browsing feel even faster on wesites that support
these compresion schemes. It also fixes some websites (www.ru,
rainloop.net, ...) that serve gzipped resources even to browser not
supporting it.
zlib can decompress both gzip and zlib formatted compressed streams. The
compression algorithm is the same, but the headers are different. The
format is autodetected from the data.
* This will be used to implement compressed http streams
* Remove the custom BDataOutput class, and use BDataIO instead, for
easier integration with existing code.
* In DrawingEngine, clipping is computed before drawing happens. This did not
take into account when drawing primitives can now be transformed. Fixes
drawing glitches in the Transformation test when the round rect is scrolled
into view and it was previously prevented to draw.
* Fixed clipping rect computation for the sanitized StrokeRoundRect()
implementation which centers the stroke on the rect.
inline const floats are a gcc extension. It is possible to do it in a
standard way in C++11 using constexpr, but then gcc will reject the
previously accepted nonstandard syntax.
* ... instead of queuing it for the job thread. The advantage is that
the request will be handled immediately and clients won't have to wait
for transactions (which may even require user feedback) to finish. It
complicates Volume a bit, since there are now two threads that may
access it. The shared data have been moved to a State object which is
protected by a lock.
* For commit transaction requests check whether another package request
is already pending/in progress before queuing a job. Fail immediately,
if there is.
Fixes bug #10039.
Pass the partition size into the default name, not the device size,
this makes the variable names match the comment.
There is no functional change here, the variable names got renamed
to make it more clear what's happening. We want show the partition
size, not the device size, and we want to error if the device size is less
than the partition size, not if the partition size is less than the device size.
and not any other modifier such as command or control or shift.
Fixes #10511
We need to be more strict here because Tracker defines Cmd+Opt+Up and
Cmd+Opt+Down shortcuts, S&T shouldn't override them.
Clipping paths (or rather alpha masks) and affine view transformations
seem to be generally supported for all drawing operations now. There might
still be bugs that have not yet been exposed by the current set of tests.
These could be related to scrolling, origin and scale as well as stacked
view states.
* Turn off optimized code-paths when an alpha mask is set. The generic
path already included the alpha-mask version of the AGG pipeline.
* Add transformation to generic bitmap rendering. (It already worked
with a transformation, so there is no slow down compared to before,
only now it also includes the transformation set via BView::SetTransform())
The initial core assignment has to be done without any knowledge about
the thread behaviour. Moreover, short lived tasks may spent most of their
time executing on that initial core. This patch attempts to improve the
qualiti of that initial decision.
The main purpose of this patch is to eliminate the delay between thread
migration and result of that migration being visible in load statistics.
Such delay, in certain circumstances, may cause some cores to become
overloaded because the scheduler migrates too many threads to them before
the effect of migration becomes apparent.