Stop inlining CJBig2_BitStream.
[pdfium.git] / core / src / fxcodec / jbig2 / JBig2_Segment.h
index 48c31b1..b80a5d2 100644 (file)
@@ -1,68 +1,64 @@
-// Copyright 2014 PDFium Authors. All rights reserved.\r
-// Use of this source code is governed by a BSD-style license that can be\r
-// found in the LICENSE file.\r
\r
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
-\r
-#ifndef _JBIG2_SEGMENT_H_\r
-#define _JBIG2_SEGMENT_H_\r
-#include "JBig2_Define.h"\r
-#include "JBig2_SymbolDict.h"\r
-#include "JBig2_PatternDict.h"\r
-#include "JBig2_Module.h"\r
-#include "JBig2_HuffmanTable.h"\r
-#define JBIG2_GET_INT32(buf) (((buf)[0]<<24) | ((buf)[1]<<16) | ((buf)[2]<<8) | (buf)[3])\r
-#define JBIG2_GET_INT16(buf) (((buf)[0]<<8) | (buf)[1])\r
-typedef enum {\r
-    JBIG2_SEGMENT_HEADER_UNPARSED,\r
-    JBIG2_SEGMENT_DATA_UNPARSED,\r
-    JBIG2_SEGMENT_PARSE_COMPLETE,\r
-    JBIG2_SEGMENT_PAUSED,\r
-    JBIG2_SEGMENT_ERROR\r
-} JBig2_SegmentState;\r
-typedef enum {\r
-    JBIG2_VOID_POINTER = 0,\r
-    JBIG2_IMAGE_POINTER,\r
-    JBIG2_SYMBOL_DICT_POINTER,\r
-    JBIG2_PATTERN_DICT_POINTER,\r
-    JBIG2_HUFFMAN_TABLE_POINTER\r
-} JBig2_ResultType;\r
-class CJBig2_Segment : public CJBig2_Object\r
-{\r
-public:\r
-\r
-    CJBig2_Segment();\r
-\r
-    ~CJBig2_Segment();\r
-\r
-    void init();\r
-\r
-    void clean();\r
-public:\r
-    FX_DWORD m_dwNumber;\r
-    union {\r
-        struct {\r
-            FX_BYTE type                                       :       6;\r
-            FX_BYTE page_association_size      :       1;\r
-            FX_BYTE deferred_non_retain                :       1;\r
-        } s;\r
-        FX_BYTE c;\r
-    } m_cFlags;\r
-    FX_INT32 m_nReferred_to_segment_count;\r
-    FX_DWORD * m_pReferred_to_segment_numbers;\r
-    FX_DWORD m_dwPage_association;\r
-    FX_DWORD m_dwData_length;\r
-\r
-    FX_DWORD m_dwHeader_Length;\r
-    FX_BYTE  *m_pData;\r
-    JBig2_SegmentState m_State;\r
-    JBig2_ResultType m_nResultType;\r
-    union {\r
-        CJBig2_SymbolDict      *sd;\r
-        CJBig2_PatternDict     *pd;\r
-        CJBig2_Image           *im;\r
-        CJBig2_HuffmanTable    *ht;\r
-        FX_LPVOID                       vd;\r
-    } m_Result;\r
-};\r
-#endif\r
+// Copyright 2014 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef _JBIG2_SEGMENT_H_
+#define _JBIG2_SEGMENT_H_
+
+#include "JBig2_Define.h"
+#include "JBig2_HuffmanTable.h"
+#include "JBig2_PatternDict.h"
+#include "JBig2_SymbolDict.h"
+
+#define JBIG2_GET_INT32(buf) \
+  (((buf)[0] << 24) | ((buf)[1] << 16) | ((buf)[2] << 8) | (buf)[3])
+#define JBIG2_GET_INT16(buf) (((buf)[0] << 8) | (buf)[1])
+typedef enum {
+  JBIG2_SEGMENT_HEADER_UNPARSED,
+  JBIG2_SEGMENT_DATA_UNPARSED,
+  JBIG2_SEGMENT_PARSE_COMPLETE,
+  JBIG2_SEGMENT_PAUSED,
+  JBIG2_SEGMENT_ERROR
+} JBig2_SegmentState;
+typedef enum {
+  JBIG2_VOID_POINTER = 0,
+  JBIG2_IMAGE_POINTER,
+  JBIG2_SYMBOL_DICT_POINTER,
+  JBIG2_PATTERN_DICT_POINTER,
+  JBIG2_HUFFMAN_TABLE_POINTER
+} JBig2_ResultType;
+class CJBig2_Segment {
+ public:
+  CJBig2_Segment();
+
+  ~CJBig2_Segment();
+
+  FX_DWORD m_dwNumber;
+  union {
+    struct {
+      uint8_t type : 6;
+      uint8_t page_association_size : 1;
+      uint8_t deferred_non_retain : 1;
+    } s;
+    uint8_t c;
+  } m_cFlags;
+  int32_t m_nReferred_to_segment_count;
+  FX_DWORD* m_pReferred_to_segment_numbers;
+  FX_DWORD m_dwPage_association;
+  FX_DWORD m_dwData_length;
+
+  FX_DWORD m_dwHeader_Length;
+  const uint8_t* m_pData;
+  JBig2_SegmentState m_State;
+  JBig2_ResultType m_nResultType;
+  union {
+    CJBig2_SymbolDict* sd;
+    CJBig2_PatternDict* pd;
+    CJBig2_Image* im;
+    CJBig2_HuffmanTable* ht;
+    void* vd;
+  } m_Result;
+};
+#endif