Yes it returns CCFiniteTimeAction* which is casted to CCActionInterval *
this casting is WRONG
Look at CCActionInterval documentation
CCCopying .. CCOBJect … CCAction …CCFiniteTimeAction .. CCActionInterval
you should not cast from CCFiniteTimeAction to CCActionInterval.
References to field like m_bFirstTick and m_elapsed using this pointer are illegal and could damage memory.
They cannot be detected by the compiler because of the arbitrary cast.