Possible winding direction issue in CCDrawNode::drawSegment?

void CCDrawNode::drawSegment(const CCPoint &from, const CCPoint &to, float radius, const ccColor4F &color)
{
    unsigned int vertex_count = 6*3;
    ensureCapacity(vertex_count);

    ccVertex2F a = __v2f(from);
    ccVertex2F b = __v2f(to);


    ccVertex2F n = v2fnormalize(v2fperp(v2fsub(b, a)));
    ccVertex2F t = v2fperp(n);

    ccVertex2F nw = v2fmult(n, radius);
    ccVertex2F tw = v2fmult(t, radius);
    ccVertex2F v0 = v2fsub(b, v2fadd(nw, tw));
    ccVertex2F v1 = v2fadd(b, v2fsub(nw, tw));
    ccVertex2F v2 = v2fsub(b, nw);
    ccVertex2F v3 = v2fadd(b, nw);
    ccVertex2F v4 = v2fsub(a, nw);
    ccVertex2F v5 = v2fadd(a, nw);
    ccVertex2F v6 = v2fsub(a, v2fsub(nw, tw));
    ccVertex2F v7 = v2fadd(a, v2fadd(nw, tw));


    ccV2F_C4B_T2F_Triangle *triangles = (ccV2F_C4B_T2F_Triangle *)(m_pBuffer + m_nBufferCount);

    ccV2F_C4B_T2F_Triangle triangles0 = {
        {v0, ccc4BFromccc4F(color), __t(v2fneg(v2fadd(n, t)))},
        {v1, ccc4BFromccc4F(color), __t(v2fsub(n, t))},
        {v2, ccc4BFromccc4F(color), __t(v2fneg(n))},
    };
    triangles[0] = triangles0;

    ccV2F_C4B_T2F_Triangle triangles1 = {
        {v3, ccc4BFromccc4F(color), __t(n)},
        {v1, ccc4BFromccc4F(color), __t(v2fsub(n, t))},
        {v2, ccc4BFromccc4F(color), __t(v2fneg(n))},
    };
    triangles[1] = triangles1;

It seems triangles0 and triangles1 are in different winding direction,
should change triangles1 to v3v2v1 or triangles0 to v0v2v1.
(and it seems this kind of problem also exists in drawPolygon)
Is there some involved developer to confirm this?