Skip to content

Commit

Permalink
fix: -Wunsafe-buffer-usage warnings in GetNextZoomLevel() (electron#4…
Browse files Browse the repository at this point in the history
…4149)

fixup e894839 really fix the warning this time
  • Loading branch information
ckerr authored and yangannyx committed Oct 21, 2024
1 parent 24c8c46 commit a35c12c
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions shell/browser/ui/inspectable_web_contents.cc
Original file line number Diff line number Diff line change
Expand Up @@ -118,20 +118,20 @@ void SetZoomLevelForWebContents(content::WebContents* web_contents,
content::HostZoomMap::SetZoomLevel(web_contents, level);
}

double GetNextZoomLevel(const double level, const bool out) {
double GetNextZoomLevel(double level, bool out) {
static constexpr std::array<double, 16U> kPresetFactors{
0.25, 0.333, 0.5, 0.666, 0.75, 0.9, 1.0, 1.1,
1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 4.0, 5.0};
static constexpr auto kBegin = kPresetFactors.begin();
static constexpr auto kEnd = kPresetFactors.end();
static constexpr size_t size = std::size(kPresetFactors);

const double factor = blink::ZoomLevelToZoomFactor(level);
auto matches = [=](auto val) { return blink::ZoomValuesEqual(factor, val); };
if (auto iter = std::find_if(kBegin, kEnd, matches); iter != kEnd) {
if (out && iter != kBegin)
return blink::ZoomFactorToZoomLevel(*--iter);
if (!out && ++iter != kEnd)
return blink::ZoomFactorToZoomLevel(*iter);
for (size_t i = 0U; i < size; ++i) {
if (!blink::ZoomValuesEqual(kPresetFactors[i], factor))
continue;
if (out && i > 0U)
return blink::ZoomFactorToZoomLevel(kPresetFactors[i - 1U]);
if (!out && i + 1U < size)
return blink::ZoomFactorToZoomLevel(kPresetFactors[i + 1U]);
}
return level;
}
Expand Down

0 comments on commit a35c12c

Please sign in to comment.