LCOV - code coverage report
Current view: top level - src/script/cpp_api - s_internal.h (source / functions) Hit Total Coverage
Test: report Lines: 7 7 100.0 %
Date: 2015-07-11 18:23:49 Functions: 2 2 100.0 %

          Line data    Source code
       1             : /*
       2             : Minetest
       3             : Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
       4             : 
       5             : This program is free software; you can redistribute it and/or modify
       6             : it under the terms of the GNU Lesser General Public License as published by
       7             : the Free Software Foundation; either version 2.1 of the License, or
       8             : (at your option) any later version.
       9             : 
      10             : This program is distributed in the hope that it will be useful,
      11             : but WITHOUT ANY WARRANTY; without even the implied warranty of
      12             : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13             : GNU Lesser General Public License for more details.
      14             : 
      15             : You should have received a copy of the GNU Lesser General Public License along
      16             : with this program; if not, write to the Free Software Foundation, Inc.,
      17             : 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
      18             : */
      19             : 
      20             : /******************************************************************************/
      21             : /******************************************************************************/
      22             : /* WARNING!!!! do NOT add this header in any include file or any code file    */
      23             : /*             not being a modapi file!!!!!!!!                                */
      24             : /******************************************************************************/
      25             : /******************************************************************************/
      26             : 
      27             : #ifndef S_INTERNAL_H_
      28             : #define S_INTERNAL_H_
      29             : 
      30             : #include "common/c_internal.h"
      31             : #include "cpp_api/s_base.h"
      32             : 
      33             : #ifdef SCRIPTAPI_LOCK_DEBUG
      34             : #include "debug.h" // assert()
      35             : class LockChecker {
      36             : public:
      37           4 :         LockChecker(bool* variable) {
      38             :                 assert(*variable == false);
      39             : 
      40           4 :                 m_variable = variable;
      41           4 :                 *m_variable = true;
      42           4 :         }
      43           8 :         ~LockChecker() {
      44           4 :                 *m_variable = false;
      45           4 :         }
      46             : private:
      47             : bool* m_variable;
      48             : };
      49             : 
      50             : #define SCRIPTAPI_LOCK_CHECK LockChecker(&(this->m_locked))
      51             : #else
      52             : #define SCRIPTAPI_LOCK_CHECK while(0)
      53             : #endif
      54             : 
      55             : #define SCRIPTAPI_PRECHECKHEADER                                               \
      56             :                 JMutexAutoLock(this->m_luastackmutex);                                 \
      57             :                 SCRIPTAPI_LOCK_CHECK;                                                  \
      58             :                 realityCheck();                                                        \
      59             :                 lua_State *L = getStack();                                             \
      60             :                 assert(lua_checkstack(L, 20));                                         \
      61             :                 StackUnroller stack_unroller(L);
      62             : 
      63             : #endif /* S_INTERNAL_H_ */
      64             : 

Generated by: LCOV version 1.11