- no code changes except those noted below
- projects upgrade to 4.6.2
- wixinstaller project upgraded automatically by VisualStudio
- wixinstaller updated to require 4.6.2
- Library.Encryption changed to Standard2.0 so accommodate update to SharpAesCrypt
Prior to revision 0190a9994e ("Rewrote the throttling implementation to
be more effecient"), the DelayIfRequired method would increment the
offset variable to advance through the buffer. When we modified the
implementation in revision 0190a9994e, we may have forgotten to modify
the offset accordingly.
Adjust buffer offset by amount read so far in the internal Read loop,
so newly read data goes after old data instead of going on top of it.
This fixes issue #3787 read buffer corruptions when throttle is used.
Previously, the FilterExpression.Expand method would forward the filter
group name to the FilterEntry constructor, which would combine the
group's patterns into one large regex filter. This would result in a
significant decrease in performance, as the regex filters are much
slower than the wildcard filters.
Instead, we can first expand the filter group into its constituent
patterns before presenting them to the FilterEntry constructor. This
preserves their wildcard nature and allows us to take advantage of
faster filtering matching algorithms.
This addresses issue #3395.
The mono profiler indicated that a large percentage of the time was
spent allocating the inputPosStack and patternPosStack arrays. By
replacing these with Stacks, we can avoid this unnecessary overhead.
This provides a workaround for the poor performance of the default
excludes group exhibited by regex filters. While this wildcard pattern
will potentially exclude more files than the previous regex pattern, in
practice this should not often be the case.
This does not resolve the performance issue of the regex filters.
However, I think in general we should try to avoid expensive
application-specific filters since these will affect the performance for
all users that use the default excludes group, whether the application
is present or not.
This concerns issue #3395.