diff options
author | David Robillard <d@drobilla.net> | 2008-11-16 20:42:11 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-11-16 20:42:11 +0000 |
commit | 4f43c8357f109ab8f7b0886a41ae11ac4d07a830 (patch) | |
tree | 53a09a703e80ef7f6707354208b74673219adeaf /raul/AtomicPtr.hpp | |
parent | dfd472bbedf71c41dbb464aa60b35d1712cbd7ad (diff) | |
download | raul-4f43c8357f109ab8f7b0886a41ae11ac4d07a830.tar.gz raul-4f43c8357f109ab8f7b0886a41ae11ac4d07a830.tar.bz2 raul-4f43c8357f109ab8f7b0886a41ae11ac4d07a830.zip |
Cast glib operations to compile on annoying platforms.
git-svn-id: http://svn.drobilla.net/lad/trunk/raul@1732 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'raul/AtomicPtr.hpp')
-rw-r--r-- | raul/AtomicPtr.hpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/raul/AtomicPtr.hpp b/raul/AtomicPtr.hpp index 365b25d..ae51cf0 100644 --- a/raul/AtomicPtr.hpp +++ b/raul/AtomicPtr.hpp @@ -28,23 +28,24 @@ class AtomicPtr { public: inline AtomicPtr() - { g_atomic_pointer_set(&_val, NULL); } + { g_atomic_pointer_set((volatile gpointer*)&_val, NULL); } inline AtomicPtr(const AtomicPtr& copy) - { g_atomic_pointer_set(&_val, copy.get()); } + { g_atomic_pointer_set((volatile gpointer*)(&_val), (gpointer)copy.get()); } inline T* get() const - { return (T*)g_atomic_pointer_get(&_val); } + { return (T*)g_atomic_pointer_get((volatile gpointer*)(&_val)); } inline void operator=(T* val) - { g_atomic_pointer_set(&_val, val); } + { g_atomic_pointer_set((volatile gpointer*)(&_val), (gpointer)val); } /** Set value to newval iff current value is oldval */ inline bool compare_and_exchange(int oldval, int newval) - { return g_atomic_pointer_compare_and_exchange(&_val, oldval, newval); } + { return g_atomic_pointer_compare_and_exchange((volatile gpointer*)(&_val), oldval, newval); } private: - mutable T volatile* _val; + //mutable T* volatile _val; + mutable T* volatile _val; }; |