[dovecot-cvs] dovecot/src/lib array-decl.h, NONE, 1.1 array.h, 1.12, 1.13 lib.h, 1.17, 1.18

cras at dovecot.org cras at dovecot.org
Mon Jul 4 14:32:21 EEST 2005


Update of /var/lib/cvs/dovecot/src/lib
In directory talvi:/tmp/cvs-serv31785/lib

Modified Files:
	array.h lib.h 
Added Files:
	array-decl.h 
Log Message:
Moved array declaration to array-decl.h and include it in lib.h. So array.h
needs to be now included to use any array_*() functions.



--- NEW FILE: array-decl.h ---
#ifndef __ARRAY_DECL_H
#define __ARRAY_DECL_H

#if defined (DEBUG) && defined (__GNUC__)
#  define ARRAY_TYPE_CHECKS
#endif

#ifdef ARRAY_TYPE_CHECKS
#  define ARRAY_DEFINE(name, array_type) name; array_type *name ## __ ## type
#  define ARRAY_DEFINE_EXTERN(name, array_type) \
	name; extern array_type *name ## __ ## type
#  define ARRAY_DEFINE_PTR(name, array_type) \
	name; array_type **name ## __ ## type
#  define ARRAY_INIT { 0, 0 }, 0
#else
#  define ARRAY_DEFINE(name, array_type) name
#  define ARRAY_DEFINE_EXTERN(name, array_type) name
#  define ARRAY_DEFINE_PTR(name, array_type) name
#  define ARRAY_INIT { 0, 0 }
#endif

struct array {
	buffer_t *buffer;
	size_t element_size;
};

#endif

Index: array.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/array.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- array.h	28 Jun 2005 17:06:38 -0000	1.12
+++ array.h	4 Jul 2005 11:32:19 -0000	1.13
@@ -1,8 +1,6 @@
 #ifndef __ARRAY_H
 #define __ARRAY_H
 
-#include "buffer.h"
-
 /* Array is a buffer accessible using fixed size elements. If DEBUG is
    enabled, it also provides compile time type safety:
 
@@ -35,27 +33,17 @@
 	struct foo *foo = array_idx(bars, 0);
    }
 */
-#if defined (DEBUG) && defined (__GNUC__)
-#  define ARRAY_TYPE_CHECKS
-#endif
+#include "array-decl.h"
+#include "buffer.h"
 
 #ifdef ARRAY_TYPE_CHECKS
-#  define ARRAY_DEFINE(name, array_type) name; array_type *name ## __ ## type
-#  define ARRAY_DEFINE_EXTERN(name, array_type) \
-	name; extern array_type *name ## __ ## type
-#  define ARRAY_DEFINE_PTR(name, array_type) \
-	name; array_type **name ## __ ## type
 #  define ARRAY_CREATE(array, pool, array_type, init_count) STMT_START { \
 	array_type **_array_tmp = array ## __ ## type; _array_tmp = NULL; \
 	array_create(array, pool, sizeof(array_type), init_count); \
 	} STMT_END
 #  define ARRAY_SET_TYPE(array, array_type) \
 	array_type **array ## __ ## type = NULL
-#  define ARRAY_INIT { 0, 0 }, 0
 #else
-#  define ARRAY_DEFINE(name, array_type) name
-#  define ARRAY_DEFINE_EXTERN(name, array_type) name
-#  define ARRAY_DEFINE_PTR(name, array_type) name
 #  define ARRAY_CREATE(array, pool, array_type, init_count) \
 	array_create(array, pool, sizeof(array_type), init_count)
 /* The reason we do this for non-ARRAY_TYPE_CHECKS as well is because if we
@@ -67,14 +55,8 @@
    unused-attribute to get rid of that with gcc. */
 #  define ARRAY_SET_TYPE(array, array_type) \
 	array_type **array ## __ ## type __attr_unused__ = NULL
-#  define ARRAY_INIT { 0, 0 }
 #endif
 
-struct array {
-	buffer_t *buffer;
-	size_t element_size;
-};
-
 static inline void
 array_create_from_buffer(array_t *array, buffer_t *buffer, size_t element_size)
 {

Index: lib.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/lib.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- lib.h	12 Mar 2005 18:15:48 -0000	1.17
+++ lib.h	4 Jul 2005 11:32:19 -0000	1.18
@@ -35,7 +35,7 @@
 struct istream;
 struct ostream;
 
-#include "array.h" /* ARRAY_DEFINE()s may exist in any header */
+#include "array-decl.h" /* ARRAY_DEFINE()s may exist in any header */
 #include "strfuncs.h"
 
 extern unsigned char null4[4]; /* 4 zeros - useful for padding */



More information about the dovecot-cvs mailing list