From e5dd5b6a7771b62a4dfbe1912c9f16826a3c3e7d Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Wed, 9 Sep 2020 11:19:59 +0300 Subject: [PATCH] Replace some if statements with a switch statement The switch case statement allows the compiler to optimize code. More specifically, if the values are densely packed, then the compiler may generate a jump table. The switch statement also looks cleaner. As for the if statements in adjustWorkArea(), they were overlooked by me after LayerSurfaceV1Interface::exclusiveEdge() had been introduced. --- layershellv1integration.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/layershellv1integration.cpp b/layershellv1integration.cpp index c4c3028147..fac0405a82 100644 --- a/layershellv1integration.cpp +++ b/layershellv1integration.cpp @@ -72,17 +72,19 @@ void LayerShellV1Integration::destroyClient(LayerSurfaceV1Interface *shellSurfac static void adjustWorkArea(const LayerSurfaceV1Interface *shellSurface, QRect *workArea) { - if (shellSurface->exclusiveEdge() == Qt::LeftEdge) { + switch (shellSurface->exclusiveEdge()) { + case Qt::LeftEdge: workArea->adjust(shellSurface->leftMargin() + shellSurface->exclusiveZone(), 0, 0, 0); - } - if (shellSurface->exclusiveEdge() == Qt::RightEdge) { + break; + case Qt::RightEdge: workArea->adjust(0, 0, -shellSurface->rightMargin() - shellSurface->exclusiveZone(), 0); - } - if (shellSurface->exclusiveEdge() == Qt::TopEdge) { + break; + case Qt::TopEdge: workArea->adjust(0, shellSurface->topMargin() + shellSurface->exclusiveZone(), 0, 0); - } - if (shellSurface->exclusiveEdge() == Qt::BottomEdge) { + break; + case Qt::BottomEdge: workArea->adjust(0, 0, 0, -shellSurface->bottomMargin() - shellSurface->exclusiveZone()); + break; } }