byte* bytes, int byteCount)
{
int ch;
- int charIndex;
+ int charIndex = 0;
int byteIndex = 0;
#if NET_2_0
EncoderFallbackBuffer buffer = null;
#endif
- for (charIndex=0; charCount > 0; charIndex++, charCount--)
+ while (charCount > 0)
{
ch = (int)(chars[charIndex]);
- bool fallback = false;
+ charIndex++;
+ charCount--;
if(ch >= 4) switch(ch)
{
case 0x000B:
break;
case 0xFF5C: ch = 0x4F; break;
default:
-#if NET_2_0
HandleFallback (ref buffer, chars, ref charIndex, ref charCount, bytes, ref byteIndex, ref byteCount);
- fallback = true;
-#else
- ch = 0x3F;
-#endif
- break;
+ continue;
}
//Write encoded byte to buffer, if buffer is defined and fallback was not used
- if (bytes != null && !fallback)
- {
+ if (bytes != null)
bytes[byteIndex] = (byte)ch;
- }
-
- //Bump counters if fallback was not used
- if (!fallback)
- {
- byteIndex++;
- byteCount--;
- }
+ byteIndex++;
+ byteCount--;
}
return byteIndex;
}