From 908c8cf42783133861d734dc0de1b170d9507564 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Tue, 22 Dec 2015 16:51:26 +0300
Subject: Add restrict keyword to touchmanager.

---
 src/touchmanager.cpp | 50 +++++++++++++++++-----------------
 src/touchmanager.h   | 76 ++++++++++++++++++++++++++++------------------------
 2 files changed, 66 insertions(+), 60 deletions(-)

diff --git a/src/touchmanager.cpp b/src/touchmanager.cpp
index 11e514634..6b84fa9b0 100644
--- a/src/touchmanager.cpp
+++ b/src/touchmanager.cpp
@@ -77,12 +77,12 @@ TouchManager::~TouchManager()
     CHECKLISTENERS
 }
 
-void TouchManager::shutdown()
+void TouchManager::shutdown() restrict
 {
     config.removeListeners(this);
 }
 
-void TouchManager::init()
+void TouchManager::init() restrict
 {
     config.addListener("showScreenJoystick", this);
     config.addListener("showScreenButtons", this);
@@ -110,19 +110,19 @@ void TouchManager::init()
     mHeight = mainGraphics->mHeight;
 }
 
-void TouchManager::loadTouchItem(TouchItem **item,
-                                 const std::string &name,
-                                 const std::string &imageName,
-                                 const std::string &text,
+void TouchManager::loadTouchItem(TouchItem **restrict item,
+                                 const std::string &restrict name,
+                                 const std::string &restrict imageName,
+                                 const std::string &restrict text,
                                  int x, int y,
                                  const int width, const int height,
                                  const int type,
-                                 const std::string &eventPressed,
-                                 const std::string &eventReleased,
+                                 const std::string &restrict eventPressed,
+                                 const std::string &restrict eventReleased,
                                  const TouchFuncPtr fAll,
                                  const TouchFuncPtr fPressed,
                                  const TouchFuncPtr fReleased,
-                                 const TouchFuncPtr fOut)
+                                 const TouchFuncPtr fOut) restrict
 {
     *item = nullptr;
     if (!theme)
@@ -185,7 +185,7 @@ void TouchManager::loadTouchItem(TouchItem **item,
     mRedraw = true;
 }
 
-void TouchManager::clear()
+void TouchManager::clear() restrict
 {
     FOR_EACH (TouchItemVectorCIter, it, mObjects)
         unload(*it);
@@ -193,7 +193,7 @@ void TouchManager::clear()
     mRedraw = true;
 }
 
-void TouchManager::draw()
+void TouchManager::draw() restrict
 {
     if (mRedraw)
     {
@@ -222,7 +222,7 @@ void TouchManager::draw()
     drawText();
 }
 
-void TouchManager::safeDraw()
+void TouchManager::safeDraw() restrict
 {
     FOR_EACH (TouchItemVectorCIter, it, mObjects)
     {
@@ -244,7 +244,7 @@ void TouchManager::safeDraw()
     drawText();
 }
 
-void TouchManager::drawText()
+void TouchManager::drawText() restrict
 {
     if (!gui)
         return;
@@ -271,7 +271,7 @@ void TouchManager::drawText()
     }
 }
 
-bool TouchManager::processEvent(const MouseInput &mouseInput)
+bool TouchManager::processEvent(const MouseInput &mouseInput) restrict
 {
     const int x = mouseInput.getTouchX();
     const int y = mouseInput.getTouchY();
@@ -325,7 +325,7 @@ bool TouchManager::processEvent(const MouseInput &mouseInput)
     return false;
 }
 
-bool TouchManager::isActionActive(const InputActionT index) const
+bool TouchManager::isActionActive(const InputActionT index) restrict const
 {
     if (static_cast<int>(index) < 0 ||
         static_cast<int>(index) >= actionsSize)
@@ -335,7 +335,7 @@ bool TouchManager::isActionActive(const InputActionT index) const
     return mActions[static_cast<size_t>(index)];
 }
 
-void TouchManager::resize(const int width, const int height)
+void TouchManager::resize(const int width, const int height) restrict
 {
     mRedraw = true;
     const int maxHeight = mHeight;
@@ -373,7 +373,7 @@ void TouchManager::resize(const int width, const int height)
     mHeight = mainGraphics->mHeight;
 }
 
-void TouchManager::unload(TouchItem *const item)
+void TouchManager::unload(TouchItem *restrict const item)
 {
     if (item)
     {
@@ -391,7 +391,7 @@ void TouchManager::unload(TouchItem *const item)
     }
 }
 
-void TouchManager::unloadTouchItem(TouchItem **unloadItem)
+void TouchManager::unloadTouchItem(TouchItem *restrict *unloadItem) restrict
 {
     FOR_EACH (TouchItemVectorIter, it, mObjects)
     {
@@ -405,14 +405,14 @@ void TouchManager::unloadTouchItem(TouchItem **unloadItem)
     }
 }
 
-void TouchManager::loadPad()
+void TouchManager::loadPad() restrict
 {
     const int sz = (mJoystickSize + 2) * 50;
     loadTouchItem(&mPad, "dpad.xml", "dpad_image.xml", "", -1, -1, sz, sz,
         LEFT, "", "", &padEvents, &padClick, &padUp, &padOut);
 }
 
-void TouchManager::loadButtons()
+void TouchManager::loadButtons() restrict
 {
     const int sz = (mButtonsSize + 1) * 50;
     if (!theme)
@@ -570,13 +570,13 @@ void TouchManager::loadButtons()
     }
 }
 
-void TouchManager::loadKeyboard()
+void TouchManager::loadKeyboard() restrict
 {
     loadTouchItem(&mKeyboard, "keyboard_icon.xml", "", "", -1, -1, 28, 28,
         NORMAL, "", "screenActionKeyboard");
 }
 
-void TouchManager::optionChanged(const std::string &value)
+void TouchManager::optionChanged(const std::string &value) restrict
 {
     if (value == "showScreenJoystick")
     {
@@ -654,21 +654,21 @@ void TouchManager::optionChanged(const std::string &value)
     }
 }
 
-void TouchManager::setInGame(const bool b)
+void TouchManager::setInGame(const bool b) restrict
 {
     mInGame = b;
     mShow = mInGame && !mTempHideButtons;
     mRedraw = true;
 }
 
-void TouchManager::setTempHide(const bool b)
+void TouchManager::setTempHide(const bool b) restrict
 {
     mTempHideButtons = b;
     mShow = mInGame && !mTempHideButtons;
     mRedraw = true;
 }
 
-void TouchManager::executeAction(const std::string &event)
+void TouchManager::executeAction(const std::string &restrict event)
 {
     inputManager.executeAction(static_cast<InputActionT>(
         config.getIntValue(event)));
diff --git a/src/touchmanager.h b/src/touchmanager.h
index e3bb93798..99d904765 100644
--- a/src/touchmanager.h
+++ b/src/touchmanager.h
@@ -36,7 +36,7 @@ class ImageCollection;
 class ImageRect;
 class MouseInput;
 
-typedef void (*TouchFuncPtr) (const MouseInput &mouseInput);
+typedef void (*TouchFuncPtr) (const MouseInput &restrict mouseInput);
 
 const int actionsSize = static_cast<int>(InputAction::TOTAL);
 const int buttonsCount = 12;
@@ -44,13 +44,18 @@ const int buttonsCount = 12;
 struct TouchItem final
 {
     TouchItem(const std::string &text0,
-              const Rect &rect0, const int type0,
-              const std::string &eventPressed0,
-              const std::string &eventReleased0,
-              ImageRect *const images0, Image *const icon0,
-              const int x0, const int y0, const int width0, const int height0,
-              const TouchFuncPtr ptrAll, const TouchFuncPtr ptrPressed,
-              const TouchFuncPtr ptrReleased, const TouchFuncPtr ptrOut) :
+              const Rect &rect0,
+              const int type0,
+              const std::string &restrict eventPressed0,
+              const std::string &restrict eventReleased0,
+              ImageRect *restrict const images0,
+              Image *restrict const icon0,
+              const int x0, const int y0,
+              const int width0, const int height0,
+              const TouchFuncPtr ptrAll,
+              const TouchFuncPtr ptrPressed,
+              const TouchFuncPtr ptrReleased,
+              const TouchFuncPtr ptrOut) :
         text(text0),
         rect(rect0),
         type(type0),
@@ -108,36 +113,37 @@ class TouchManager final : public ConfigListener
             RIGHT = 2
         };
 
-        void init();
+        void init() restrict;
 
-        void loadTouchItem(TouchItem **item,
-                           const std::string &name,
-                           const std::string &imageName,
-                           const std::string &text,
+        void loadTouchItem(TouchItem **restrict item,
+                           const std::string &restrict name,
+                           const std::string &restrict imageName,
+                           const std::string &restrict text,
                            int x, int y,
                            const int width, const int height,
                            const int type,
-                           const std::string &eventPressed,
-                           const std::string &eventReleased,
+                           const std::string &restrict eventPressed,
+                           const std::string &restrict eventReleased,
                            const TouchFuncPtr fAll = nullptr,
                            const TouchFuncPtr fPressed = nullptr,
                            const TouchFuncPtr fReleased = nullptr,
-                           const TouchFuncPtr fOut = nullptr) A_NONNULL(2);
+                           const TouchFuncPtr fOut = nullptr)
+                           restrict A_NONNULL(2);
 
-        void clear();
+        void clear() restrict;
 
-        void draw();
+        void draw() restrict;
 
-        void safeDraw();
+        void safeDraw() restrict;
 
-        void drawText();
+        void drawText() restrict;
 
-        bool processEvent(const MouseInput &mouseInput);
+        bool processEvent(const MouseInput &mouseInput) restrict;
 
-        bool isActionActive(const InputActionT index) const;
+        bool isActionActive(const InputActionT index) restrict const;
 
         void setActionActive(const InputActionT index,
-                             const bool value)
+                             const bool value) restrict
         {
             if (static_cast<int>(index) >= 0 &&
                 static_cast<int>(index) < actionsSize)
@@ -146,30 +152,30 @@ class TouchManager final : public ConfigListener
             }
         }
 
-        void resize(const int width, const int height);
+        void resize(const int width, const int height) restrict;
 
-        static void unload(TouchItem *const item);
+        static void unload(TouchItem *restrict const item);
 
-        void unloadTouchItem(TouchItem **unloadItem);
+        void unloadTouchItem(TouchItem *restrict *unloadItem) restrict;
 
-        void optionChanged(const std::string &value) override final;
+        void optionChanged(const std::string &value) restrict override final;
 
-        void loadPad();
+        void loadPad() restrict;
 
-        void loadButtons();
+        void loadButtons() restrict;
 
-        void loadKeyboard();
+        void loadKeyboard() restrict;
 
-        int getPadSize() const
+        int getPadSize() restrict const
         { return (mJoystickSize + 2) * 50; }
 
-        void setInGame(const bool b);
+        void setInGame(const bool b) restrict;
 
-        void setTempHide(const bool b);
+        void setTempHide(const bool b) restrict;
 
-        void shutdown();
+        void shutdown() restrict;
 
-        static void executeAction(const std::string &event);
+        static void executeAction(const std::string &restrict event);
 
     private:
         TouchItem *mKeyboard;
-- 
cgit v1.2.3-70-g09d2