Mercurial > dovecot > core-2.2
annotate src/lib/array-decl.h @ 5733:4b5ce642957d HEAD
Declare a global uint32_t array type.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 14 Jun 2007 03:05:51 +0300 |
parents | 51e2a2adc141 |
children | fcd14b4cf941 |
rev | line source |
---|---|
3470
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
1 #ifndef __ARRAY_DECL_H |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
2 #define __ARRAY_DECL_H |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
3 |
4601
664011f3b1fb
Some more array changes. v and v_modifiable are now pointer-to-pointers so
Timo Sirainen <tss@iki.fi>
parents:
4451
diff
changeset
|
4 #define ARRAY_DEFINE(name, array_type) union { struct array arr; array_type const *const *v; array_type **v_modifiable; } name |
4451
1a35d53c18fc
Array API redesigned to work using unions. It now provides type safety
Timo Sirainen <tss@iki.fi>
parents:
3470
diff
changeset
|
5 #define ARRAY_INIT { { 0, 0 } } |
3470
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
6 |
4451
1a35d53c18fc
Array API redesigned to work using unions. It now provides type safety
Timo Sirainen <tss@iki.fi>
parents:
3470
diff
changeset
|
7 #define ARRAY_DEFINE_TYPE(name, array_type) \ |
4601
664011f3b1fb
Some more array changes. v and v_modifiable are now pointer-to-pointers so
Timo Sirainen <tss@iki.fi>
parents:
4451
diff
changeset
|
8 union array ## __ ## name { struct array arr; array_type const *const *v; array_type **v_modifiable; } |
4451
1a35d53c18fc
Array API redesigned to work using unions. It now provides type safety
Timo Sirainen <tss@iki.fi>
parents:
3470
diff
changeset
|
9 #define ARRAY_TYPE(name) \ |
1a35d53c18fc
Array API redesigned to work using unions. It now provides type safety
Timo Sirainen <tss@iki.fi>
parents:
3470
diff
changeset
|
10 union array ## __ ## name |
3470
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
11 |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
12 struct array { |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
13 buffer_t *buffer; |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
14 size_t element_size; |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
15 }; |
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
16 |
4944
51e2a2adc141
Defined a universal const_string array type.
Timo Sirainen <tss@iki.fi>
parents:
4601
diff
changeset
|
17 ARRAY_DEFINE_TYPE(const_string, const char *); |
5733
4b5ce642957d
Declare a global uint32_t array type.
Timo Sirainen <tss@iki.fi>
parents:
4944
diff
changeset
|
18 ARRAY_DEFINE_TYPE(uint32_t, uint32_t); |
4944
51e2a2adc141
Defined a universal const_string array type.
Timo Sirainen <tss@iki.fi>
parents:
4601
diff
changeset
|
19 |
3470
346a494c2feb
Moved array declaration to array-decl.h and include it in lib.h. So array.h
Timo Sirainen <tss@iki.fi>
parents:
diff
changeset
|
20 #endif |