--- a/charconvfw/charconvplugins/src/plugins/EUCJP_PACKED_2.CPP Wed Jun 09 11:40:52 2010 +0300
+++ b/charconvfw/charconvplugins/src/plugins/EUCJP_PACKED_2.CPP Tue Aug 31 17:01:26 2010 +0300
@@ -283,6 +283,7 @@
const TDesC16& aUnicode,
CCnvCharacterSetConverter::TArrayOfAscendingIndices& aIndicesOfUnconvertibleCharacters)
{
+ TInt ret = KErrNone;
RArray<CnvUtilities::SCharacterSet> characterSets;
if ( FeatureManager::FeatureSupported(KFeatureIdJapanesePicto) )
{
@@ -291,19 +292,19 @@
characterSet.iConversionData=&CnvJisRoman::ConversionData();
characterSet.iConvertFromIntermediateBufferInPlace=DummyConvertFromIntermediateBufferInPlace;
characterSet.iEscapeSequence=&KNullDesC8;
- characterSets.Append(characterSet);
+ ret |= characterSets.Append(characterSet);
characterSet.iConversionData=&CnvJisX0208::ConversionData();
characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToEucJpPackedInPlace;
characterSet.iEscapeSequence=&KNullDesC8;
- characterSets.Append(characterSet);
+ ret |= characterSets.Append(characterSet);
characterSet.iConversionData=&CnvHalfWidthKatakana8::ConversionData();
characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromHalfWidthKatakana8ToEucJpPackedInPlace;
characterSet.iEscapeSequence=&KNullDesC8;
- characterSets.Append(characterSet);
+ ret |= characterSets.Append(characterSet);
characterSet.iConversionData=&CnvJisX0212::ConversionData();
characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0212ToEucJpPackedInPlace;
characterSet.iEscapeSequence=&KNullDesC8;
- characterSets.Append(characterSet);
+ ret |= characterSets.Append(characterSet);
SetCharacterSetsForPictograph(characterSets, ECharsetEucJp);
}
@@ -313,20 +314,21 @@
characterSet.iConversionData=&CnvJisRoman::ConversionData();
characterSet.iConvertFromIntermediateBufferInPlace=DummyConvertFromIntermediateBufferInPlace;
characterSet.iEscapeSequence=&KNullDesC8;
- characterSets.Append(characterSet);
+ ret |= characterSets.Append(characterSet);
characterSet.iConversionData=&CnvJisX0208::ConversionData();
characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToEucJpPackedInPlace;
characterSet.iEscapeSequence=&KNullDesC8;
- characterSets.Append(characterSet);
+ ret |= characterSets.Append(characterSet);
characterSet.iConversionData=&CnvHalfWidthKatakana8::ConversionData();
characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromHalfWidthKatakana8ToEucJpPackedInPlace;
characterSet.iEscapeSequence=&KNullDesC8;
- characterSets.Append(characterSet);
+ ret |= characterSets.Append(characterSet);
characterSet.iConversionData=&CnvJisX0212::ConversionData();
characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0212ToEucJpPackedInPlace;
characterSet.iEscapeSequence=&KNullDesC8;
- characterSets.Append(characterSet);
+ ret |= characterSets.Append(characterSet);
}
+ __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret));
TInt unconvert = CnvUtilities::ConvertFromUnicode(aDefaultEndiannessOfForeignCharacters, aReplacementForUnconvertibleUnicodeCharacters, aForeign, aUnicode, aIndicesOfUnconvertibleCharacters, characterSets.Array());
characterSets.Close();
@@ -575,6 +577,7 @@
TInt& aNumberOfUnconvertibleCharacters,
TInt& aIndexOfFirstByteOfFirstUnconvertibleCharacter)
{
+ TInt ret =KErrNone;
RArray<CnvUtilities::SMethod> methods;
if ( FeatureManager::FeatureSupported(KFeatureIdJapanesePicto) )
{
@@ -585,25 +588,25 @@
method.iConversionData=&CnvJisRoman::ConversionData();
method.iNumberOfBytesPerCharacter=1;
method.iNumberOfCoreBytesPerCharacter=1;
- methods.Append(method);
+ ret |= methods.Append(method);
method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToJisX0208;
method.iConvertToIntermediateBufferInPlace=ConvertToJisX0208FromEucJpPackedInPlace;
method.iConversionData=&CnvJisX0208::ConversionData();
method.iNumberOfBytesPerCharacter=2;
method.iNumberOfCoreBytesPerCharacter=2;
- methods.Append(method);
+ ret |= methods.Append(method);
method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToHalfWidthKatakana8;
method.iConvertToIntermediateBufferInPlace=ConvertToHalfWidthKatakana8FromEucJpPackedInPlace;
method.iConversionData=&CnvHalfWidthKatakana8::ConversionData();
method.iNumberOfBytesPerCharacter=2;
method.iNumberOfCoreBytesPerCharacter=1;
- methods.Append(method);
+ ret |= methods.Append(method);
method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToJisX0212;
method.iConvertToIntermediateBufferInPlace=ConvertToJisX0212FromEucJpPackedInPlace;
method.iConversionData=&CnvJisX0212::ConversionData();
method.iNumberOfBytesPerCharacter=3;
method.iNumberOfCoreBytesPerCharacter=2;
- methods.Append(method);
+ ret |= methods.Append(method);
}
else
{
@@ -613,26 +616,27 @@
method.iConversionData=&CnvJisRoman::ConversionData();
method.iNumberOfBytesPerCharacter=1;
method.iNumberOfCoreBytesPerCharacter=1;
- methods.Append(method);
+ ret |= methods.Append(method);
method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToJisX0208;
method.iConvertToIntermediateBufferInPlace=ConvertToJisX0208FromEucJpPackedInPlace;
method.iConversionData=&CnvJisX0208::ConversionData();
method.iNumberOfBytesPerCharacter=2;
method.iNumberOfCoreBytesPerCharacter=2;
- methods.Append(method);
+ ret |= methods.Append(method);
method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToHalfWidthKatakana8;
method.iConvertToIntermediateBufferInPlace=ConvertToHalfWidthKatakana8FromEucJpPackedInPlace;
method.iConversionData=&CnvHalfWidthKatakana8::ConversionData();
method.iNumberOfBytesPerCharacter=2;
method.iNumberOfCoreBytesPerCharacter=1;
- methods.Append(method);
+ ret |= methods.Append(method);
method.iNumberOfBytesAbleToConvert=NumberOfBytesAbleToConvertToJisX0212;
method.iConvertToIntermediateBufferInPlace=ConvertToJisX0212FromEucJpPackedInPlace;
method.iConversionData=&CnvJisX0212::ConversionData();
method.iNumberOfBytesPerCharacter=3;
method.iNumberOfCoreBytesPerCharacter=2;
- methods.Append(method);
+ ret |= methods.Append(method);
}
+ __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret));
TInt unconvert = CnvUtilities::ConvertToUnicodeFromHeterogeneousForeign(aDefaultEndiannessOfForeignCharacters, aUnicode, aForeign, aNumberOfUnconvertibleCharacters, aIndexOfFirstByteOfFirstUnconvertibleCharacter, methods.Array());
// The following is specific impelementation for brower.