]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/layout/StateTableProcessor.h
ICU-57131.0.1.tar.gz
[apple/icu.git] / icuSources / layout / StateTableProcessor.h
index 19212d38adc0b5e2081e552e84fbe745f6f77792..bed87bd89aa8dde579f4a0becba88c540a41faf1 100644 (file)
@@ -1,7 +1,6 @@
 /*
- * @(#)StateTableProcessor.h   1.6 00/03/15
  *
- * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
  *
  */
 
 
 U_NAMESPACE_BEGIN
 
+class LEGlyphStorage;
+
 class StateTableProcessor : public SubtableProcessor
 {
 public:
-    void process(LEGlyphID *glyphs, le_int32 *charIndices, le_int32 glyph);
+    void process(LEGlyphStorage &glyphStorage, LEErrorCode &success);
 
     virtual void beginStateTable() = 0;
 
-    virtual ByteOffset processStateEntry(LEGlyphID *glyphs, le_int32 *charIndices, le_int32 &currGlyph,
-        le_int32 glyphCount, EntryTableIndex index) = 0;
+    virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index) = 0;
 
     virtual void endStateTable() = 0;
 
 protected:
-    StateTableProcessor(const MorphSubtableHeader *morphSubtableHeader);
+    StateTableProcessor(const LEReferenceTo<MorphSubtableHeader> &morphSubtableHeader, LEErrorCode &success);
     virtual ~StateTableProcessor();
 
     StateTableProcessor();
@@ -43,11 +43,12 @@ protected:
     ByteOffset stateArrayOffset;
     ByteOffset entryTableOffset;
 
-    const ClassTable *classTable;
+    LEReferenceTo<ClassTable> classTable;
     TTGlyphID firstGlyph;
     TTGlyphID lastGlyph;
 
-    const MorphStateTableHeader *stateTableHeader;
+    LEReferenceTo<MorphStateTableHeader> stateTableHeader;
+    LEReferenceTo<StateTableHeader> stHeader; // for convenience
 
 private:
     StateTableProcessor(const StateTableProcessor &other); // forbid copying of this class