]> git.wh0rd.org Git - ICEs.git/blob - 137054/ice.ii.4
initial import
[ICEs.git] / 137054 / ice.ii.4
1                extern "C++" {
2       namespace std {
3     class exception {
4   public: exception() throw() {
5   }
6   };
7     }
8       }
9         typedef unsigned int size_t;
10         extern "C" {
11       }
12         typedef unsigned char UCHAR;
13         typedef unsigned short USHORT;
14         typedef char TEXT;
15         namespace Firebird {
16       class status_exception : public std::exception {
17     };
18       class fatal_exception : public status_exception {
19     union {
20   }
21     __value;
22     }
23       _IO_cookie_io_functions_t;
24       void gds__log(const TEXT*, ...);
25       struct MemoryBlock {
26     union {
27   class MemoryPool* mbk_pool;
28   };
29     };
30       class PermanentStorage {
31     private: MemoryPool& pool;
32     protected: explicit PermanentStorage(MemoryPool& p) : pool(p) {
33   }
34     };
35       class AutoStorage : public PermanentStorage {
36     public: static MemoryPool& getAutoMemoryPool();
37     protected: AutoStorage() : PermanentStorage(getAutoMemoryPool()) {
38   }
39     };
40       class AbstractString : private AutoStorage {
41     public: typedef char char_type;
42     typedef const char* const_pointer;
43     enum {
44  INLINE_BUFFER_SIZE = 32, INIT_RESERVE = 16 };
45     protected: typedef USHORT internal_size_type;
46     char_type inlineBuffer[INLINE_BUFFER_SIZE];
47     char_type* stringBuffer;
48     internal_size_type stringLength, bufferSize;
49     inline AbstractString() : stringBuffer(inlineBuffer), stringLength(0), bufferSize(INLINE_BUFFER_SIZE) {
50   }
51     public: inline const_pointer c_str() const {
52   }
53     };
54       class StringComparator {
55     };
56       template<typename Comparator> class StringBase : public AbstractString {
57     typedef StringBase<Comparator> StringType;
58     inline StringType& append(const StringType& str) {
59   {
60  };
61   }
62     };
63       typedef StringBase<StringComparator> string;
64       class ClumpletReader : protected AutoStorage {
65     public: enum Kind {
66  Tagged, UnTagged, SpbAttach, SpbStart, Tpb };
67     ClumpletReader(Kind k, const UCHAR* buffer, size_t buffLen);
68     bool isEof() const {
69   }
70     void moveNext();
71     void rewind();
72     UCHAR getClumpTag() const;
73     size_t getClumpLength() const;
74     const UCHAR* getBytes() const;
75     size_t getBufferLength() const {
76   size_t rc = getBufferEnd() - getBuffer();
77   if (rc == 1 && kind != UnTagged && kind != SpbStart) {
78   }
79   }
80     size_t getCurOffset() const {
81   }
82     void dump() const;
83     const Kind kind;
84     virtual const UCHAR* getBuffer() const {
85   }
86     virtual const UCHAR* getBufferEnd() const {
87   }
88     };
89       void ClumpletReader::dump() const {
90     class ClumpletDump : public ClumpletReader {
91   public: ClumpletDump(Kind k, const UCHAR* buffer, size_t buffLen) : ClumpletReader(k, buffer, buffLen) {
92   }
93   static string hexString(const UCHAR* b, size_t len) {
94   for (;
95   len > 0;
96   --len, ++b) {
97   }
98   }
99   };
100     try {
101   ClumpletDump d(kind, getBuffer(), getBufferLength());
102   for (d.rewind();
103   !(d.isEof());
104   d.moveNext()) {
105   gds__log("Clump %d at offset %d: %s", d.getClumpTag(), d.getCurOffset(), ClumpletDump::hexString(d.getBytes(), d.getClumpLength()).c_str());
106   }
107   }
108     catch(const fatal_exception& x) {
109   }
110     }
111       }