Adds virtual destructors on Interfaces

Classes with at least one virtual function needs a virtual destructor.
This patch adds virtual destructors to  Interface classes

And also enables  'warn on  missing virtual destructors'
This commit is contained in:
Ricardo Quesada 2013-11-19 16:57:23 -08:00
parent 340544c42d
commit 0d750cdbaf
8 changed files with 47 additions and 26 deletions

View File

@ -1 +1 @@
1dbcea49018d245ac72bf4138633f3905ef4dc7f 0d9ce76f7e63d75718c38b1137b2580e19d0db76

View File

@ -42,36 +42,38 @@ struct LetterInfo
class CC_DLL LabelTextFormatProtocol class CC_DLL LabelTextFormatProtocol
{ {
public: public:
virtual bool recordLetterInfo(const cocos2d::Point& point,unsigned short int theChar, int spriteIndex) = 0;
virtual bool recordPlaceholderInfo(int spriteIndex) = 0; virtual ~LabelTextFormatProtocol() {}
virtual std::vector<LetterInfo> *getLettersInfo() = 0;
virtual float getLetterPosXLeft(int index) const = 0; virtual bool recordLetterInfo(const cocos2d::Point& point,unsigned short int theChar, int spriteIndex) = 0;
virtual float getLetterPosXRight(int index) const = 0; virtual bool recordPlaceholderInfo(int spriteIndex) = 0;
virtual std::vector<LetterInfo> *getLettersInfo() = 0;
virtual float getLetterPosXLeft(int index) const = 0;
virtual float getLetterPosXRight(int index) const = 0;
// sprite related stuff // sprite related stuff
virtual cocos2d::Sprite *getLetter(int ID) = 0; virtual cocos2d::Sprite *getLetter(int ID) = 0;
// font related stuff // font related stuff
virtual int getCommonLineHeight() const = 0; virtual int getCommonLineHeight() const = 0;
virtual int getKerningForCharsPair(unsigned short first, unsigned short second) const = 0; virtual int getKerningForCharsPair(unsigned short first, unsigned short second) const = 0;
virtual int getXOffsetForChar(unsigned short c) const = 0; virtual int getXOffsetForChar(unsigned short c) const = 0;
virtual int getYOffsetForChar(unsigned short c) const = 0; virtual int getYOffsetForChar(unsigned short c) const = 0;
virtual int getAdvanceForChar(unsigned short c, int hintPositionInString) const = 0; virtual int getAdvanceForChar(unsigned short c, int hintPositionInString) const = 0;
virtual cocos2d::Rect getRectForChar(unsigned short c) const = 0; virtual cocos2d::Rect getRectForChar(unsigned short c) const = 0;
// string related stuff // string related stuff
virtual int getStringNumLines() const = 0; virtual int getStringNumLines() const = 0;
virtual int getStringLenght() const = 0; virtual int getStringLenght() const = 0;
virtual unsigned short getCharAtStringPosition(int position) const = 0; virtual unsigned short getCharAtStringPosition(int position) const = 0;
virtual unsigned short * getUTF8String() const = 0; virtual unsigned short * getUTF8String() const = 0;
virtual void assignNewUTF8String(unsigned short *newString) = 0; virtual void assignNewUTF8String(unsigned short *newString) = 0;
virtual TextHAlignment getTextAlignment() const = 0; virtual TextHAlignment getTextAlignment() const = 0;
// label related stuff // label related stuff
virtual float getMaxLineWidth() const = 0; virtual float getMaxLineWidth() const = 0;
virtual bool breakLineWithoutSpace() const = 0; virtual bool breakLineWithoutSpace() const = 0;
virtual cocos2d::Size getLabelContentSize() const = 0; virtual cocos2d::Size getLabelContentSize() const = 0;
virtual void setLabelContentSize(const Size &newSize) = 0; virtual void setLabelContentSize(const Size &newSize) = 0;
}; };
NS_CC_END NS_CC_END

View File

@ -38,7 +38,9 @@ NS_CC_BEGIN
class CC_DLL RGBAProtocol class CC_DLL RGBAProtocol
{ {
public: public:
/** virtual ~RGBAProtocol() {}
/**
* Changes the color with R,G,B bytes * Changes the color with R,G,B bytes
* *
* @param color Example: Color3B(255,100,0) means R=255, G=100, B=0 * @param color Example: Color3B(255,100,0) means R=255, G=100, B=0
@ -165,6 +167,8 @@ public:
class CC_DLL BlendProtocol class CC_DLL BlendProtocol
{ {
public: public:
virtual ~BlendProtocol() {}
/** /**
* Sets the source blending function. * Sets the source blending function.
* *
@ -197,6 +201,7 @@ public:
class CC_DLL TextureProtocol : public BlendProtocol class CC_DLL TextureProtocol : public BlendProtocol
{ {
public: public:
virtual ~TextureProtocol() {}
/** /**
* Returns the currently used texture * Returns the currently used texture
* *
@ -222,6 +227,8 @@ public:
class CC_DLL LabelProtocol class CC_DLL LabelProtocol
{ {
public: public:
virtual ~LabelProtocol() {}
/** /**
* Sets a new label using a string * Sets a new label using a string
* *
@ -247,7 +254,9 @@ public:
class CC_DLL DirectorDelegate class CC_DLL DirectorDelegate
{ {
public: public:
/** virtual ~DirectorDelegate() {}
/**
* Will be called by Director when the projection is updated, and "custom" projection is used * Will be called by Director when the projection is updated, and "custom" projection is used
* @js NA * @js NA
* @lua NA * @lua NA

View File

@ -40,6 +40,8 @@ class TextFieldTTF;
class CC_DLL TextFieldDelegate class CC_DLL TextFieldDelegate
{ {
public: public:
virtual ~TextFieldDelegate() {}
/** /**
@brief If the sender doesn't want to attach to the IME, return true; @brief If the sender doesn't want to attach to the IME, return true;
*/ */

View File

@ -50,6 +50,8 @@ class Node;
class CC_DLL TransitionEaseScene// : public Object class CC_DLL TransitionEaseScene// : public Object
{ {
public: public:
virtual ~TransitionEaseScene() {}
/** returns the Ease action that will be performed on a linear action. /** returns the Ease action that will be performed on a linear action.
@since v0.8.2 @since v0.8.2
*/ */

View File

@ -39,6 +39,8 @@ typedef unsigned char CC_XML_CHAR;
class CC_DLL SAXDelegator class CC_DLL SAXDelegator
{ {
public: public:
virtual ~SAXDelegator() {}
/** /**
* @js NA * @js NA
* @lua NA * @lua NA

View File

@ -13,6 +13,7 @@ namespace cocosbuilder {
class CCBAnimationManagerDelegate class CCBAnimationManagerDelegate
{ {
public: public:
virtual ~CCBAnimationManagerDelegate() {}
virtual void completedAnimationSequenceNamed(const char *name) = 0; virtual void completedAnimationSequenceNamed(const char *name) = 0;
}; };

View File

@ -31,6 +31,9 @@ namespace gui {
class UIScrollInterface class UIScrollInterface
{ {
public:
virtual ~UIScrollInterface() {}
protected: protected:
virtual void handlePressLogic(const cocos2d::Point &touchPoint) = 0; virtual void handlePressLogic(const cocos2d::Point &touchPoint) = 0;
virtual void handleMoveLogic(const cocos2d::Point &touchPoint) = 0; virtual void handleMoveLogic(const cocos2d::Point &touchPoint) = 0;