char&                        operator [](unsigned int i) { return (*this)[(int)i]; }
char&                        operator [](int i) { if (i >= (int)Length()) ReallocData((PRUint32)i + 1); return mData->mString[i]; }
    char&                        operator [](unsigned int i) { return (*this)[(int)i]; }