charconvfw/charconvplugins/src/plugins/EUCJP_PACKED_2.CPP
changeset 44 601ab138ba0b
parent 0 1fb32624e06b
child 55 336bee5c2d35
--- a/charconvfw/charconvplugins/src/plugins/EUCJP_PACKED_2.CPP	Fri Jun 11 15:33:54 2010 +0300
+++ b/charconvfw/charconvplugins/src/plugins/EUCJP_PACKED_2.CPP	Tue Jul 06 16:23:19 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.