[GEM-cvs] SF.net SVN: pd-gem:[4398] trunk/Gem/src/Base
Brought to you by:
zmoelnig
From: <zmo...@us...> - 2011-07-27 12:06:27
|
Revision: 4398 http://pd-gem.svn.sourceforge.net/pd-gem/?rev=4398&view=rev Author: zmoelnig Date: 2011-07-27 12:06:21 +0000 (Wed, 27 Jul 2011) Log Message: ----------- code cleanup; implement copy constructors; initialize members,... Modified Paths: -------------- trunk/Gem/src/Base/CPPExtern.cpp trunk/Gem/src/Base/CPPExtern.h trunk/Gem/src/Base/GemContext.cpp trunk/Gem/src/Base/GemContext.h Modified: trunk/Gem/src/Base/CPPExtern.cpp =================================================================== --- trunk/Gem/src/Base/CPPExtern.cpp 2011-07-27 12:05:44 UTC (rev 4397) +++ trunk/Gem/src/Base/CPPExtern.cpp 2011-07-27 12:06:21 UTC (rev 4398) @@ -55,6 +55,13 @@ m_objectname=gensym("unknown Gem object"); } } +CPPExtern :: CPPExtern(const CPPExtern&org) : + x_obj(org.x_obj), + m_objectname(org.m_objectname), + m_canvas(org.m_canvas), + m_endpost(true) +{ +} ///////////////////////////////////////////////////////// // Destructor @@ -62,6 +69,8 @@ ///////////////////////////////////////////////////////// CPPExtern :: ~CPPExtern() { } + + void CPPExtern :: post(const char*fmt,...) const { char buf[MAXPDSTRING]; @@ -184,3 +193,11 @@ } return true; } + + +CPPExtern&CPPExtern::operator=(const CPPExtern&org) { + x_obj=org.x_obj; + m_objectname=org.m_objectname; + m_canvas=org.m_canvas; + m_endpost=true; +} Modified: trunk/Gem/src/Base/CPPExtern.h =================================================================== --- trunk/Gem/src/Base/CPPExtern.h 2011-07-27 12:05:44 UTC (rev 4397) +++ trunk/Gem/src/Base/CPPExtern.h 2011-07-27 12:06:21 UTC (rev 4398) @@ -146,6 +146,8 @@ private: mutable bool m_endpost; /* internal state for startpost/post/endpost */ static bool checkGemVersion(const int major, const int minor); + CPPExtern(const CPPExtern&); + virtual CPPExtern&operator=(const CPPExtern&); }; //////////////////////////////////////// Modified: trunk/Gem/src/Base/GemContext.cpp =================================================================== --- trunk/Gem/src/Base/GemContext.cpp 2011-07-27 12:05:44 UTC (rev 4397) +++ trunk/Gem/src/Base/GemContext.cpp 2011-07-27 12:06:21 UTC (rev 4398) @@ -151,7 +151,19 @@ pop(); } +Context&Context::operator=(const Context&c) { + if(&c == this || c.m_pimpl == m_pimpl) + return (*this); + if(m_pimpl)delete m_pimpl; + m_pimpl=new PIMPL(*c.m_pimpl); + push(); + pop(); + + return(*this); +} + + Context::~Context(void) { if(m_pimpl)delete m_pimpl; m_pimpl=NULL; GemMan::m_windowState--; Modified: trunk/Gem/src/Base/GemContext.h =================================================================== --- trunk/Gem/src/Base/GemContext.h 2011-07-27 12:05:44 UTC (rev 4397) +++ trunk/Gem/src/Base/GemContext.h 2011-07-27 12:06:21 UTC (rev 4398) @@ -39,13 +39,14 @@ Context(const Context&); virtual ~Context(void); + Context&operator=(const Context&); + // make context current bool push(void); // make context uncurrent bool pop(void); - public: static unsigned int getContextId(void); static GLEWContext*getGlewContext(void); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |