   else
   	@echo "$@" > $@
   endif
+*** misc/icu/source/layout/CoverageTables.cpp	Sat May  8 01:28:42 2004
+--- misc/build/icu/source/layout/CoverageTables.cpp	Fri Jan 19 16:03:21 2007
+***************
+*** 44,49 ****
+--- 44,53 ----
+      le_uint16 count = SWAPW(glyphCount);
+      le_uint8 bit = OpenTypeUtilities::highBit(count);
+      le_uint16 power = 1 << bit;
++ 
++     if (count == 0)
++         return -1;
++ 
+      le_uint16 extra = count - power;
+      le_uint16 probe = power;
+      le_uint16 index = 0;
+*** misc/icu/source/layout/DeviceTables.cpp	Fri Jan 14 18:25:12 2005
+--- misc/build/icu/source/layout/DeviceTables.cpp	Fri Jan 19 16:03:20 2007
+***************
+*** 22,28 ****
+      le_uint16 format = SWAPW(deltaFormat) - 1;
+      le_int16 result = 0;
+      
+!     if (ppem >= start && ppem <= SWAPW(endSize)) {
+          le_uint16 sizeIndex = ppem - start;
+          le_uint16 bits = fieldBits[format];
+          le_uint16 count = 16 / bits;
+--- 22,29 ----
+      le_uint16 format = SWAPW(deltaFormat) - 1;
+      le_int16 result = 0;
+      
+!     if (ppem >= start && ppem <= SWAPW(endSize)
+!      && format < sizeof(fieldBits)/sizeof(fieldBits[0])) {
+          le_uint16 sizeIndex = ppem - start;
+          le_uint16 bits = fieldBits[format];
+          le_uint16 count = 16 / bits;
 *** misc/icu/source/layout/GXLayoutEngine.cpp	Fri Sep  2 20:22:10 2005
 --- misc/build/icu/source/layout/GXLayoutEngine.cpp	Wed Jan  3 09:40:21 2007
 ***************

  
      if (LE_FAILURE(success)) {
          return 0;
*** misc/icu/source/layout/LESwaps.h	Thu Jun 23 00:39:36 2005
--- misc/build/icu/source/layout/LESwaps.h	Wed Jan  3 09:40:21 2007
***************

  /**
   * This class is used to access data which stored in big endian order
   * regardless of the conventions of the platform. It has been designed
*** misc/icu/source/layout/MPreFixups.cpp	Sat May  8 01:28:44 2004
--- misc/build/icu/source/layout/MPreFixups.cpp	Fri Jan 19 16:03:20 2007
***************
*** 40,45 ****
--- 40,51 ----
      }
  }
  
+ void MPreFixups::reduce()
+ {
+     if (fFixupCount > 0)
+         fFixupCount--;
+ }
+ 
  void MPreFixups::apply(LEGlyphStorage &glyphStorage)
  {
      for (le_int32 fixup = 0; fixup < fFixupCount; fixup += 1) {
*** misc/icu/source/layout/MPreFixups.h	Mon Apr 12 20:51:32 2004
--- misc/build/icu/source/layout/MPreFixups.h	Fri Jan 19 16:03:20 2007
***************
*** 31,36 ****
--- 31,38 ----
      
      void apply(LEGlyphStorage &glyphStorage);
  
+     void reduce();
+ 
  private:
      FixupData *fFixupData;
      le_int32   fFixupCount;
*** misc/icu/source/test/intltest/loctest.cpp	Thu Jul  6 03:50:04 2006
--- misc/build/icu/source/test/intltest/loctest.cpp	Wed Jan  3 09:40:21 2007
***************
