From c93f7f5ceaf255bc9314be022b7bebb55b1d0605 Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Sat, 28 Jan 2017 17:02:43 -0500 Subject: Fix synchronization issue at thread start If a newly spawned thread called getThreadId or getThreadHandle before the spawning thread finished saving the thread handle, then the handle/id would be used uninitialized. This would cause the threading tests to fail since isCurrentThread would return false, and if Minetest is built with C++11 support the std::thread object pointer would be dereferenced while ininitialized, causing a segmentation fault. This fixes the issue by using a mutex to force the spawned thread to wait for the spawning thread to finish initializing the thread object. An alternative way to handle this would be to also set the thread handle/id in the started thread but this wouldn't work for C++11 builds because there's no way to get the partially constructed object. --- src/threading/mutex.cpp | 9 +++++++++ src/threading/mutex.h | 2 ++ src/threading/thread.cpp | 15 +++++++++++++++ src/threading/thread.h | 1 + 4 files changed, 27 insertions(+) (limited to 'src/threading') diff --git a/src/threading/mutex.cpp b/src/threading/mutex.cpp index 0908b5d37..d864f12c5 100644 --- a/src/threading/mutex.cpp +++ b/src/threading/mutex.cpp @@ -88,6 +88,15 @@ void Mutex::lock() #endif } +bool Mutex::try_lock() +{ +#if USE_WIN_MUTEX + return TryEnterCriticalSection(&mutex) != 0; +#else + return pthread_mutex_trylock(&mutex) == 0; +#endif +} + void Mutex::unlock() { #if USE_WIN_MUTEX diff --git a/src/threading/mutex.h b/src/threading/mutex.h index fb5c029fc..6feb23c25 100644 --- a/src/threading/mutex.h +++ b/src/threading/mutex.h @@ -56,6 +56,8 @@ public: void lock(); void unlock(); + bool try_lock(); + protected: Mutex(bool recursive); void init_mutex(bool recursive); diff --git a/src/threading/thread.cpp b/src/threading/thread.cpp index fbe4ba1f3..4f4c9474a 100644 --- a/src/threading/thread.cpp +++ b/src/threading/thread.cpp @@ -101,6 +101,11 @@ Thread::Thread(const std::string &name) : Thread::~Thread() { kill(); + + // Make sure start finished mutex is unlocked before it's destroyed + m_start_finished_mutex.try_lock(); + m_start_finished_mutex.unlock(); + } @@ -113,6 +118,9 @@ bool Thread::start() m_request_stop = false; + // The mutex may already be locked if the thread is being restarted + m_start_finished_mutex.try_lock(); + #if USE_CPP11_THREADS try { @@ -135,6 +143,9 @@ bool Thread::start() #endif + // Allow spawned thread to continue + m_start_finished_mutex.unlock(); + while (!m_running) sleep_ms(1); @@ -249,6 +260,10 @@ DWORD WINAPI Thread::threadProc(LPVOID param) g_logger.registerThread(thr->m_name); thr->m_running = true; + // Wait for the thread that started this one to finish initializing the + // thread handle so that getThreadId/getThreadHandle will work. + thr->m_start_finished_mutex.lock(); + thr->m_retval = thr->run(); thr->m_running = false; diff --git a/src/threading/thread.h b/src/threading/thread.h index 14a0e13ab..4785d3e03 100644 --- a/src/threading/thread.h +++ b/src/threading/thread.h @@ -153,6 +153,7 @@ private: Atomic m_request_stop; Atomic m_running; Mutex m_mutex; + Mutex m_start_finished_mutex; #if USE_CPP11_THREADS std::thread *m_thread_obj; -- cgit v1.2.3 From 3eecc6ff4492ca21772544451fd8aa78871bac3b Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Sat, 28 Jan 2017 17:23:30 -0500 Subject: Fix AIX threading build --- src/threading/thread.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/threading') diff --git a/src/threading/thread.cpp b/src/threading/thread.cpp index 4f4c9474a..1909da61d 100644 --- a/src/threading/thread.cpp +++ b/src/threading/thread.cpp @@ -252,7 +252,7 @@ DWORD WINAPI Thread::threadProc(LPVOID param) Thread *thr = (Thread *)param; #ifdef _AIX - m_kernel_thread_id = thread_self(); + thr->m_kernel_thread_id = thread_self(); #endif thr->setName(thr->m_name); -- cgit v1.2.3 From 4af99b75cf3ae43c365a4c1e90e85f8ec764cf62 Mon Sep 17 00:00:00 2001 From: Loic Blot Date: Fri, 7 Apr 2017 23:22:00 +0200 Subject: Pass clang-format on 14 trivial header files fixes Also remove them from whitelist --- src/script/cpp_api/s_client.h | 4 +- src/script/cpp_api/s_player.h | 14 ++-- src/script/lua_api/l_areastore.h | 5 +- src/script/lua_api/l_metadata.h | 7 +- src/script/lua_api/l_minimap.h | 8 +-- src/script/lua_api/l_nodetimer.h | 7 +- src/script/lua_api/l_noise.h | 27 ++++---- src/script/lua_api/l_server.h | 4 +- src/script/lua_api/l_settings.h | 30 ++++----- src/threading/event.h | 10 +-- src/threading/semaphore.h | 14 ++-- src/tileanimation.h | 25 ++++--- src/touchscreengui.h | 115 +++++++++++++++++---------------- src/util/cpp11_container.h | 16 ++--- util/travis/clang-format-whitelist.txt | 14 ---- 15 files changed, 146 insertions(+), 154 deletions(-) (limited to 'src/threading') diff --git a/src/script/cpp_api/s_client.h b/src/script/cpp_api/s_client.h index 2369efe3e..9afc66d61 100644 --- a/src/script/cpp_api/s_client.h +++ b/src/script/cpp_api/s_client.h @@ -22,8 +22,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #define S_CLIENT_H_ #include "cpp_api/s_base.h" -#include "util/string.h" #include "mapnode.h" +#include "util/string.h" #ifdef _CRT_MSVCP_CURRENT #include @@ -31,7 +31,7 @@ with this program; if not, write to the Free Software Foundation, Inc., class ClientEnvironment; -class ScriptApiClient: virtual public ScriptApiBase +class ScriptApiClient : virtual public ScriptApiBase { public: // Calls on_shutdown handlers diff --git a/src/script/cpp_api/s_player.h b/src/script/cpp_api/s_player.h index 86ee1b024..9b4611f9e 100644 --- a/src/script/cpp_api/s_player.h +++ b/src/script/cpp_api/s_player.h @@ -26,8 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc., struct ToolCapabilities; -class ScriptApiPlayer - : virtual public ScriptApiBase +class ScriptApiPlayer : virtual public ScriptApiBase { public: virtual ~ScriptApiPlayer(); @@ -36,17 +35,16 @@ public: void on_dieplayer(ServerActiveObject *player); bool on_respawnplayer(ServerActiveObject *player); bool on_prejoinplayer(const std::string &name, const std::string &ip, - std::string *reason); + std::string *reason); void on_joinplayer(ServerActiveObject *player); void on_leaveplayer(ServerActiveObject *player, bool timeout); void on_cheat(ServerActiveObject *player, const std::string &cheat_type); - bool on_punchplayer(ServerActiveObject *player, - ServerActiveObject *hitter, float time_from_last_punch, - const ToolCapabilities *toolcap, v3f dir, s16 damage); + bool on_punchplayer(ServerActiveObject *player, ServerActiveObject *hitter, + float time_from_last_punch, const ToolCapabilities *toolcap, + v3f dir, s16 damage); s16 on_player_hpchange(ServerActiveObject *player, s16 hp_change); void on_playerReceiveFields(ServerActiveObject *player, - const std::string &formname, const StringMap &fields); + const std::string &formname, const StringMap &fields); }; - #endif /* S_PLAYER_H_ */ diff --git a/src/script/lua_api/l_areastore.h b/src/script/lua_api/l_areastore.h index 4bd94cebe..7dea08df4 100644 --- a/src/script/lua_api/l_areastore.h +++ b/src/script/lua_api/l_areastore.h @@ -22,12 +22,11 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "lua_api/l_base.h" - class AreaStore; -class LuaAreaStore : public ModApiBase { +class LuaAreaStore : public ModApiBase +{ private: - static const char className[]; static const luaL_reg methods[]; diff --git a/src/script/lua_api/l_metadata.h b/src/script/lua_api/l_metadata.h index 561be6adf..be31d95ad 100644 --- a/src/script/lua_api/l_metadata.h +++ b/src/script/lua_api/l_metadata.h @@ -19,8 +19,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef L_METADATA_H_ #define L_METADATA_H_ -#include "lua_api/l_base.h" #include "irrlichttypes_bloated.h" +#include "lua_api/l_base.h" class Metadata; @@ -28,14 +28,15 @@ class Metadata; NodeMetaRef */ -class MetaDataRef : public ModApiBase { +class MetaDataRef : public ModApiBase +{ public: virtual ~MetaDataRef() {} protected: static MetaDataRef *checkobject(lua_State *L, int narg); virtual void reportMetadataChange() {} - virtual Metadata* getmeta(bool auto_create) = 0; + virtual Metadata *getmeta(bool auto_create) = 0; virtual void clearMeta() = 0; virtual void handleToTable(lua_State *L, Metadata *meta); diff --git a/src/script/lua_api/l_minimap.h b/src/script/lua_api/l_minimap.h index d9bb8842c..9a299b4fd 100644 --- a/src/script/lua_api/l_minimap.h +++ b/src/script/lua_api/l_minimap.h @@ -22,12 +22,11 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "l_base.h" - class Minimap; -class LuaMinimap : public ModApiBase { +class LuaMinimap : public ModApiBase +{ private: - static const char className[]; static const luaL_reg methods[]; @@ -49,6 +48,7 @@ private: static int l_toggle_shape(lua_State *L); Minimap *m_minimap; + public: LuaMinimap(Minimap *m); ~LuaMinimap() {} @@ -56,7 +56,7 @@ public: static void create(lua_State *L, Minimap *object); static LuaMinimap *checkobject(lua_State *L, int narg); - static Minimap* getobject(LuaMinimap *ref); + static Minimap *getobject(LuaMinimap *ref); static void Register(lua_State *L); }; diff --git a/src/script/lua_api/l_nodetimer.h b/src/script/lua_api/l_nodetimer.h index 9f8dd21c8..239112037 100644 --- a/src/script/lua_api/l_nodetimer.h +++ b/src/script/lua_api/l_nodetimer.h @@ -20,12 +20,13 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef L_NODETIMER_H_ #define L_NODETIMER_H_ -#include "lua_api/l_base.h" #include "irr_v3d.h" +#include "lua_api/l_base.h" class ServerEnvironment; -class NodeTimerRef : public ModApiBase { +class NodeTimerRef : public ModApiBase +{ private: v3s16 m_p; ServerEnvironment *m_env; @@ -62,6 +63,4 @@ public: static void Register(lua_State *L); }; - - #endif /* L_NODETIMER_H_ */ diff --git a/src/script/lua_api/l_noise.h b/src/script/lua_api/l_noise.h index 40bfd1315..11ec348bf 100644 --- a/src/script/lua_api/l_noise.h +++ b/src/script/lua_api/l_noise.h @@ -20,14 +20,15 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef L_NOISE_H_ #define L_NOISE_H_ -#include "lua_api/l_base.h" #include "irr_v3d.h" +#include "lua_api/l_base.h" #include "noise.h" /* LuaPerlinNoise */ -class LuaPerlinNoise : public ModApiBase { +class LuaPerlinNoise : public ModApiBase +{ private: NoiseParams np; static const char className[]; @@ -57,7 +58,8 @@ public: /* LuaPerlinNoiseMap */ -class LuaPerlinNoiseMap : public ModApiBase { +class LuaPerlinNoiseMap : public ModApiBase +{ NoiseParams np; Noise *noise; bool m_is3d; @@ -95,7 +97,8 @@ public: /* LuaPseudoRandom */ -class LuaPseudoRandom : public ModApiBase { +class LuaPseudoRandom : public ModApiBase +{ private: PseudoRandom m_pseudo; @@ -111,8 +114,7 @@ private: static int l_next(lua_State *L); public: - LuaPseudoRandom(s32 seed) : - m_pseudo(seed) {} + LuaPseudoRandom(s32 seed) : m_pseudo(seed) {} // LuaPseudoRandom(seed) // Creates an LuaPseudoRandom and leaves it on top of stack @@ -126,7 +128,8 @@ public: /* LuaPcgRandom */ -class LuaPcgRandom : public ModApiBase { +class LuaPcgRandom : public ModApiBase +{ private: PcgRandom m_rnd; @@ -146,10 +149,8 @@ private: static int l_rand_normal_dist(lua_State *L); public: - LuaPcgRandom(u64 seed) : - m_rnd(seed) {} - LuaPcgRandom(u64 seed, u64 seq) : - m_rnd(seed, seq) {} + LuaPcgRandom(u64 seed) : m_rnd(seed) {} + LuaPcgRandom(u64 seed, u64 seq) : m_rnd(seed, seq) {} // LuaPcgRandom(seed) // Creates an LuaPcgRandom and leaves it on top of stack @@ -160,11 +161,11 @@ public: static void Register(lua_State *L); }; - /* LuaSecureRandom */ -class LuaSecureRandom : public ModApiBase { +class LuaSecureRandom : public ModApiBase +{ private: static const size_t RAND_BUF_SIZE = 2048; static const char className[]; diff --git a/src/script/lua_api/l_server.h b/src/script/lua_api/l_server.h index 1ad46d440..ca5e7b80f 100644 --- a/src/script/lua_api/l_server.h +++ b/src/script/lua_api/l_server.h @@ -22,7 +22,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "lua_api/l_base.h" -class ModApiServer : public ModApiBase { +class ModApiServer : public ModApiBase +{ private: // request_shutdown([message], [reconnect]) static int l_request_shutdown(lua_State *L); @@ -107,7 +108,6 @@ private: public: static void Initialize(lua_State *L, int top); - }; #endif /* L_SERVER_H_ */ diff --git a/src/script/lua_api/l_settings.h b/src/script/lua_api/l_settings.h index bca333e31..d5edd32ce 100644 --- a/src/script/lua_api/l_settings.h +++ b/src/script/lua_api/l_settings.h @@ -24,51 +24,51 @@ with this program; if not, write to the Free Software Foundation, Inc., class Settings; -class LuaSettings : public ModApiBase { +class LuaSettings : public ModApiBase +{ private: static const char className[]; static const luaL_reg methods[]; // garbage collector - static int gc_object(lua_State* L); + static int gc_object(lua_State *L); // get(self, key) -> value - static int l_get(lua_State* L); + static int l_get(lua_State *L); // get_bool(self, key) -> boolean - static int l_get_bool(lua_State* L); + static int l_get_bool(lua_State *L); // set(self, key, value) - static int l_set(lua_State* L); + static int l_set(lua_State *L); // remove(self, key) -> success - static int l_remove(lua_State* L); + static int l_remove(lua_State *L); // get_names(self) -> {key1, ...} - static int l_get_names(lua_State* L); + static int l_get_names(lua_State *L); // write(self) -> success - static int l_write(lua_State* L); + static int l_write(lua_State *L); // to_table(self) -> {[key1]=value1,...} - static int l_to_table(lua_State* L); + static int l_to_table(lua_State *L); bool m_write_allowed; - Settings* m_settings; + Settings *m_settings; std::string m_filename; public: - LuaSettings(const char* filename, bool write_allowed); + LuaSettings(const char *filename, bool write_allowed); ~LuaSettings(); // LuaSettings(filename) // Creates an LuaSettings and leaves it on top of stack - static int create_object(lua_State* L); + static int create_object(lua_State *L); - static LuaSettings* checkobject(lua_State* L, int narg); - - static void Register(lua_State* L); + static LuaSettings *checkobject(lua_State *L, int narg); + static void Register(lua_State *L); }; #endif diff --git a/src/threading/event.h b/src/threading/event.h index 26cb8997a..79a99ce1f 100644 --- a/src/threading/event.h +++ b/src/threading/event.h @@ -29,19 +29,19 @@ DEALINGS IN THE SOFTWARE. #include "threads.h" #if USE_CPP11_MUTEX - #include - #include "threading/mutex.h" - #include "threading/mutex_auto_lock.h" +#include +#include "threading/mutex.h" +#include "threading/mutex_auto_lock.h" #endif - /** A syncronization primitive that will wake up one waiting thread when signaled. * Calling @c signal() multiple times before a waiting thread has had a chance * to notice the signal will wake only one thread. Additionally, if no threads * are waiting on the event when it is signaled, the next call to @c wait() * will return (almost) immediately. */ -class Event { +class Event +{ public: Event(); #ifndef USE_CPP11_MUTEX diff --git a/src/threading/semaphore.h b/src/threading/semaphore.h index 822856396..8ff376666 100644 --- a/src/threading/semaphore.h +++ b/src/threading/semaphore.h @@ -21,21 +21,22 @@ with this program; if not, write to the Free Software Foundation, Inc., #define THREADING_SEMAPHORE_H #if defined(_WIN32) - #include +#include #elif defined(__MACH__) && defined(__APPLE__) - #include +#include #else - #include +#include #endif #include "util/basic_macros.h" -class Semaphore { +class Semaphore +{ public: - Semaphore(int val=0); + Semaphore(int val = 0); ~Semaphore(); - void post(unsigned int num=1); + void post(unsigned int num = 1); void wait(); bool wait(unsigned int time_ms); @@ -52,4 +53,3 @@ private: }; #endif - diff --git a/src/tileanimation.h b/src/tileanimation.h index eecd3eb96..9872e7917 100644 --- a/src/tileanimation.h +++ b/src/tileanimation.h @@ -20,36 +20,41 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef TILEANIMATION_HEADER #define TILEANIMATION_HEADER -#include "irrlichttypes_bloated.h" #include +#include "irrlichttypes_bloated.h" -enum TileAnimationType { +enum TileAnimationType +{ TAT_NONE = 0, TAT_VERTICAL_FRAMES = 1, TAT_SHEET_2D = 2, }; -struct TileAnimationParams { +struct TileAnimationParams +{ enum TileAnimationType type; - union { + union + { // struct { // } none; - struct { + struct + { int aspect_w; // width for aspect ratio int aspect_h; // height for aspect ratio float length; // seconds } vertical_frames; - struct { - int frames_w; // number of frames left-to-right - int frames_h; // number of frames top-to-bottom + struct + { + int frames_w; // number of frames left-to-right + int frames_h; // number of frames top-to-bottom float frame_length; // seconds } sheet_2d; }; void serialize(std::ostream &os, u16 protocol_version) const; void deSerialize(std::istream &is, u16 protocol_version); - void determineParams(v2u32 texture_size, int *frame_count, - int *frame_length_ms, v2u32 *frame_size) const; + void determineParams(v2u32 texture_size, int *frame_count, int *frame_length_ms, + v2u32 *frame_size) const; void getTextureModifer(std::ostream &os, v2u32 texture_size, int frame) const; v2f getTextureCoords(v2u32 texture_size, int frame) const; }; diff --git a/src/touchscreengui.h b/src/touchscreengui.h index 53fc6d683..88e068308 100644 --- a/src/touchscreengui.h +++ b/src/touchscreengui.h @@ -19,15 +19,15 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef TOUCHSCREENGUI_HEADER #define TOUCHSCREENGUI_HEADER -#include -#include #include +#include +#include -#include #include +#include -#include "game.h" #include "client/tile.h" +#include "game.h" using namespace irr; using namespace irr::core; @@ -68,32 +68,32 @@ typedef enum { #define SETTINGS_BAR_Y_OFFSET 6.5 #define RARE_CONTROLS_BAR_Y_OFFSET 4 -extern const char** touchgui_button_imagenames; +extern const char **touchgui_button_imagenames; -struct button_info { - float repeatcounter; - float repeatdelay; - irr::EKEY_CODE keycode; +struct button_info +{ + float repeatcounter; + float repeatdelay; + irr::EKEY_CODE keycode; std::vector ids; - IGUIButton* guibutton = NULL; - bool immediate_release; + IGUIButton *guibutton = NULL; + bool immediate_release; }; class AutoHideButtonBar { public: + AutoHideButtonBar(IrrlichtDevice *device, IEventReceiver *receiver); - AutoHideButtonBar( IrrlichtDevice *device, IEventReceiver* receiver ); - - void init(ISimpleTextureSource* tsrc, const char* starter_img, - int button_id, v2s32 UpperLeft, v2s32 LowerRight, - autohide_button_bar_dir dir, float timeout); + void init(ISimpleTextureSource *tsrc, const char *starter_img, int button_id, + v2s32 UpperLeft, v2s32 LowerRight, autohide_button_bar_dir dir, + float timeout); ~AutoHideButtonBar(); /* add button to be shown */ - void addButton(touch_gui_button_id id, const wchar_t* caption, - const char* btn_image); + void addButton(touch_gui_button_id id, const wchar_t *caption, + const char *btn_image); /* detect settings bar button events */ bool isButton(const SEvent &event); @@ -114,40 +114,41 @@ public: void show(); private: - ISimpleTextureSource* m_texturesource; - irr::video::IVideoDriver* m_driver; - IGUIEnvironment* m_guienv; - IEventReceiver* m_receiver; - v2u32 m_screensize; - button_info m_starter; - std::vector m_buttons; + ISimpleTextureSource *m_texturesource; + irr::video::IVideoDriver *m_driver; + IGUIEnvironment *m_guienv; + IEventReceiver *m_receiver; + v2u32 m_screensize; + button_info m_starter; + std::vector m_buttons; - v2s32 m_upper_left; - v2s32 m_lower_right; + v2s32 m_upper_left; + v2s32 m_lower_right; /* show settings bar */ - bool m_active; + bool m_active; - bool m_visible; + bool m_visible; /* settings bar timeout */ - float m_timeout; - float m_timeout_value; - bool m_initialized; - autohide_button_bar_dir m_dir; + float m_timeout; + float m_timeout_value; + bool m_initialized; + autohide_button_bar_dir m_dir; }; class TouchScreenGUI { public: - TouchScreenGUI(IrrlichtDevice *device, IEventReceiver* receiver); + TouchScreenGUI(IrrlichtDevice *device, IEventReceiver *receiver); ~TouchScreenGUI(); void translateEvent(const SEvent &event); - void init(ISimpleTextureSource* tsrc); + void init(ISimpleTextureSource *tsrc); - double getYawChange() { + double getYawChange() + { double res = m_camera_yaw_change; m_camera_yaw_change = 0; return res; @@ -166,28 +167,28 @@ public: void show(); private: - IrrlichtDevice* m_device; - IGUIEnvironment* m_guienv; - IEventReceiver* m_receiver; - ISimpleTextureSource* m_texturesource; - v2u32 m_screensize; - std::map > m_hud_rects; - std::map m_hud_ids; - bool m_visible; // is the gui visible + IrrlichtDevice *m_device; + IGUIEnvironment *m_guienv; + IEventReceiver *m_receiver; + ISimpleTextureSource *m_texturesource; + v2u32 m_screensize; + std::map> m_hud_rects; + std::map m_hud_ids; + bool m_visible; // is the gui visible /* value in degree */ - double m_camera_yaw_change; - double m_camera_pitch; + double m_camera_yaw_change; + double m_camera_pitch; - line3d m_shootline; + line3d m_shootline; - rect m_control_pad_rect; + rect m_control_pad_rect; - int m_move_id; - bool m_move_has_really_moved; - s32 m_move_downtime; - bool m_move_sent_as_mouse_event; - v2s32 m_move_downlocation; + int m_move_id; + bool m_move_has_really_moved; + s32 m_move_downtime; + bool m_move_sent_as_mouse_event; + v2s32 m_move_downlocation; button_info m_buttons[after_last_element_id]; @@ -206,9 +207,10 @@ private: float repeat_delay = BUTTON_REPEAT_DELAY); /* load texture */ - void loadButtonTexture(button_info* btn, const char* path, rect button_rect); + void loadButtonTexture(button_info *btn, const char *path, rect button_rect); - struct id_status{ + struct id_status + { int id; int X; int Y; @@ -236,7 +238,8 @@ private: int getGuiButtonSize(); /* doubleclick detection variables */ - struct key_event { + struct key_event + { unsigned int down_time; s32 x; s32 y; diff --git a/src/util/cpp11_container.h b/src/util/cpp11_container.h index 88317c9c4..0194385fc 100644 --- a/src/util/cpp11_container.h +++ b/src/util/cpp11_container.h @@ -29,15 +29,15 @@ with this program; if not, write to the Free Software Foundation, Inc., #endif #ifdef USE_UNORDERED_CONTAINERS - #include - #include - #define UNORDERED_MAP std::unordered_map - #define UNORDERED_SET std::unordered_set +#include +#include +#define UNORDERED_MAP std::unordered_map +#define UNORDERED_SET std::unordered_set #else - #include - #include - #define UNORDERED_MAP std::map - #define UNORDERED_SET std::set +#include +#include +#define UNORDERED_MAP std::map +#define UNORDERED_SET std::set #endif #endif diff --git a/util/travis/clang-format-whitelist.txt b/util/travis/clang-format-whitelist.txt index fb3b21271..1f8c10ebb 100644 --- a/util/travis/clang-format-whitelist.txt +++ b/util/travis/clang-format-whitelist.txt @@ -248,7 +248,6 @@ src/script/cpp_api/s_async.h src/script/cpp_api/s_base.cpp src/script/cpp_api/s_base.h src/script/cpp_api/s_client.cpp -src/script/cpp_api/s_client.h src/script/cpp_api/s_entity.cpp src/script/cpp_api/s_entity.h src/script/cpp_api/s_env.cpp @@ -265,13 +264,11 @@ src/script/cpp_api/s_node.h src/script/cpp_api/s_nodemeta.cpp src/script/cpp_api/s_nodemeta.h src/script/cpp_api/s_player.cpp -src/script/cpp_api/s_player.h src/script/cpp_api/s_security.cpp src/script/cpp_api/s_security.h src/script/cpp_api/s_server.cpp src/script/cpp_api/s_server.h src/script/lua_api/l_areastore.cpp -src/script/lua_api/l_areastore.h src/script/lua_api/l_base.cpp src/script/lua_api/l_base.h src/script/lua_api/l_craft.cpp @@ -291,15 +288,11 @@ src/script/lua_api/l_mainmenu.cpp src/script/lua_api/l_mainmenu.h src/script/lua_api/l_mapgen.cpp src/script/lua_api/l_metadata.cpp -src/script/lua_api/l_metadata.h src/script/lua_api/l_minimap.cpp -src/script/lua_api/l_minimap.h src/script/lua_api/l_nodemeta.cpp src/script/lua_api/l_nodemeta.h src/script/lua_api/l_nodetimer.cpp -src/script/lua_api/l_nodetimer.h src/script/lua_api/l_noise.cpp -src/script/lua_api/l_noise.h src/script/lua_api/l_object.cpp src/script/lua_api/l_object.h src/script/lua_api/l_particles.cpp @@ -307,9 +300,7 @@ src/script/lua_api/l_particles.h src/script/lua_api/l_rollback.cpp src/script/lua_api/l_rollback.h src/script/lua_api/l_server.cpp -src/script/lua_api/l_server.h src/script/lua_api/l_settings.cpp -src/script/lua_api/l_settings.h src/script/lua_api/l_sound.cpp src/script/lua_api/l_storage.cpp src/script/lua_api/l_util.cpp @@ -347,21 +338,17 @@ src/terminal_chat_console.cpp src/terminal_chat_console.h src/threading/atomic.h src/threading/event.cpp -src/threading/event.h src/threading/mutex_auto_lock.h src/threading/mutex.cpp src/threading/mutex.h src/threading/semaphore.cpp -src/threading/semaphore.h src/threading/thread.cpp src/threading/thread.h src/threads.h src/tileanimation.cpp -src/tileanimation.h src/tool.cpp src/tool.h src/touchscreengui.cpp -src/touchscreengui.h src/treegen.cpp src/treegen.h src/unittest/test_areastore.cpp @@ -398,7 +385,6 @@ src/util/base64.cpp src/util/base64.h src/util/basic_macros.h src/util/container.h -src/util/cpp11_container.h src/util/directiontables.cpp src/util/directiontables.h src/util/enriched_string.cpp -- cgit v1.2.3 From 1bf9b25fb47d086a3f323c86278de7c235855fb0 Mon Sep 17 00:00:00 2001 From: Zeno- Date: Mon, 15 May 2017 20:10:29 +1000 Subject: Fix uninitalised variable in event.cpp (#5764) --- src/threading/event.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/threading') diff --git a/src/threading/event.cpp b/src/threading/event.cpp index 0d5928f10..a22c6628b 100644 --- a/src/threading/event.cpp +++ b/src/threading/event.cpp @@ -35,6 +35,8 @@ Event::Event() pthread_mutex_init(&mutex, NULL); notified = false; # endif +#elif USE_CPP11_MUTEX + notified = false; #endif } -- cgit v1.2.3