changeset 255:467bb4a77339

Improve handling of ecc on tags
author charles
date Fri, 16 Jan 2009 00:45:47 +0000
parents 08307f2d7546
children 3bd2a4e3262f
files yaffs_packedtags2.c
diffstat 1 files changed, 11 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/yaffs_packedtags2.c
+++ b/yaffs_packedtags2.c
@@ -163,15 +163,11 @@ void yaffs_UnpackTags2TagsPart(yaffs_Ext
 void yaffs_UnpackTags2(yaffs_ExtendedTags * t, yaffs_PackedTags2 * pt)
 {
 
-	yaffs_UnpackTags2TagsPart(t,&pt->t);
-
+	yaffs_ECCResult eccResult = YAFFS_ECC_RESULT_NO_ERROR;
+	
 	if (pt->t.sequenceNumber != 0xFFFFFFFF) {
 		/* Page is in use */
-#ifdef YAFFS_IGNORE_TAGS_ECC
-		{
-			t->eccResult = YAFFS_ECC_RESULT_NO_ERROR;
-		}
-#else
+#ifndef YAFFS_IGNORE_TAGS_ECC
 		{
 			yaffs_ECCOther ecc;
 			int result;
@@ -186,21 +182,25 @@ void yaffs_UnpackTags2(yaffs_ExtendedTag
 						  &pt->ecc, &ecc);
 			switch(result){
 				case 0:
-					t->eccResult = YAFFS_ECC_RESULT_NO_ERROR;
+					eccResult = YAFFS_ECC_RESULT_NO_ERROR;
 					break;
 				case 1:
-					t->eccResult = YAFFS_ECC_RESULT_FIXED;
+					eccResult = YAFFS_ECC_RESULT_FIXED;
 					break;
 				case -1:
-					t->eccResult = YAFFS_ECC_RESULT_UNFIXED;
+					eccResult = YAFFS_ECC_RESULT_UNFIXED;
 					break;
 				default:
-					t->eccResult = YAFFS_ECC_RESULT_UNKNOWN;
+					eccResult = YAFFS_ECC_RESULT_UNKNOWN;
 			}
 		}
 #endif
 	}
 
+	yaffs_UnpackTags2TagsPart(t,&pt->t);
+	
+	t->eccResult = eccResult;
+
 	yaffs_DumpPackedTags2(pt);
 	yaffs_DumpTags2(t);