LEFT | RIGHT |
(no file at all) | |
1 // © 2016 and later: Unicode, Inc. and others. | 1 // © 2016 and later: Unicode, Inc. and others. |
2 // License & terms of use: http://www.unicode.org/copyright.html | 2 // License & terms of use: http://www.unicode.org/copyright.html |
3 /* | 3 /* |
4 ****************************************************************************** | 4 ****************************************************************************** |
5 * | 5 * |
6 * Copyright (C) 1999-2011, International Business Machines | 6 * Copyright (C) 1999-2011, International Business Machines |
7 * Corporation and others. All Rights Reserved. | 7 * Corporation and others. All Rights Reserved. |
8 * | 8 * |
9 ******************************************************************************/ | 9 ******************************************************************************/ |
10 | 10 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 *-----------------------------------------------------------------------------*
/ | 70 *-----------------------------------------------------------------------------*
/ |
71 typedef struct { | 71 typedef struct { |
72 const char *entryName; | 72 const char *entryName; |
73 const DataHeader *pHeader; | 73 const DataHeader *pHeader; |
74 } PointerTOCEntry; | 74 } PointerTOCEntry; |
75 | 75 |
76 | 76 |
77 typedef struct { | 77 typedef struct { |
78 uint32_t count; | 78 uint32_t count; |
79 uint32_t reserved; | 79 uint32_t reserved; |
80 PointerTOCEntry entry[2]; /* Actual size is from count. */ | 80 /** |
| 81 * Variable-length array declared with length 1 to disable bounds checkers. |
| 82 * The actual array length is in the count field. |
| 83 */ |
| 84 PointerTOCEntry entry[1]; |
81 } PointerTOC; | 85 } PointerTOC; |
82 | 86 |
83 | 87 |
84 /* definition of OffsetTOC struct types moved to ucmndata.h */ | 88 /* definition of OffsetTOC struct types moved to ucmndata.h */ |
85 | 89 |
86 /*-----------------------------------------------------------------------------* | 90 /*-----------------------------------------------------------------------------* |
87 * * | 91 * * |
88 * entry point lookup implementations * | 92 * entry point lookup implementations * |
89 * * | 93 * * |
90 *-----------------------------------------------------------------------------*
/ | 94 *-----------------------------------------------------------------------------*
/ |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 * a swapped version may need to generate a different data structure | 384 * a swapped version may need to generate a different data structure |
381 * with pointers to the original data items and with their lengths | 385 * with pointers to the original data items and with their lengths |
382 * (-1 for the last one if it is not known), and maybe even pointers to the | 386 * (-1 for the last one if it is not known), and maybe even pointers to the |
383 * swapped versions of the items. | 387 * swapped versions of the items. |
384 * These pointers to swapped versions would establish a cache; | 388 * These pointers to swapped versions would establish a cache; |
385 * instead, each open data item could simply own the storage for its swapped | 389 * instead, each open data item could simply own the storage for its swapped |
386 * data. This fits better with the current design. | 390 * data. This fits better with the current design. |
387 * | 391 * |
388 * markus 2003sep18 Jitterbug 2235 | 392 * markus 2003sep18 Jitterbug 2235 |
389 */ | 393 */ |
LEFT | RIGHT |