You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by sf...@apache.org on 2011/05/15 12:26:47 UTC
svn commit: r1103310 - in /apr/apr/trunk/include: apr_allocator.h
apr_base64.h apr_buckets.h apr_pools.h
Author: sf
Date: Sun May 15 10:26:47 2011
New Revision: 1103310
URL: http://svn.apache.org/viewvc?rev=1103310&view=rev
Log:
Add some nonnull and pure attributes
Modified:
apr/apr/trunk/include/apr_allocator.h
apr/apr/trunk/include/apr_base64.h
apr/apr/trunk/include/apr_buckets.h
apr/apr/trunk/include/apr_pools.h
Modified: apr/apr/trunk/include/apr_allocator.h
URL: http://svn.apache.org/viewvc/apr/apr/trunk/include/apr_allocator.h?rev=1103310&r1=1103309&r2=1103310&view=diff
==============================================================================
--- apr/apr/trunk/include/apr_allocator.h (original)
+++ apr/apr/trunk/include/apr_allocator.h Sun May 15 10:26:47 2011
@@ -71,7 +71,8 @@ struct apr_memnode_t {
* @param allocator The allocator we have just created.
*
*/
-APR_DECLARE(apr_status_t) apr_allocator_create(apr_allocator_t **allocator);
+APR_DECLARE(apr_status_t) apr_allocator_create(apr_allocator_t **allocator)
+ __attribute__((nonnull(1)));
/**
* Destroy an allocator
@@ -79,7 +80,8 @@ APR_DECLARE(apr_status_t) apr_allocator_
* @remark Any memnodes not given back to the allocator prior to destroying
* will _not_ be free()d.
*/
-APR_DECLARE(void) apr_allocator_destroy(apr_allocator_t *allocator);
+APR_DECLARE(void) apr_allocator_destroy(apr_allocator_t *allocator)
+ __attribute__((nonnull(1)));
/**
* Allocate a block of mem from the allocator
@@ -88,7 +90,8 @@ APR_DECLARE(void) apr_allocator_destroy(
* memnode structure)
*/
APR_DECLARE(apr_memnode_t *) apr_allocator_alloc(apr_allocator_t *allocator,
- apr_size_t size);
+ apr_size_t size)
+ __attribute__((nonnull(1)));
/**
* Free a list of blocks of mem, giving them back to the allocator.
@@ -98,7 +101,8 @@ APR_DECLARE(apr_memnode_t *) apr_allocat
* @param memnode The memory node to return
*/
APR_DECLARE(void) apr_allocator_free(apr_allocator_t *allocator,
- apr_memnode_t *memnode);
+ apr_memnode_t *memnode)
+ __attribute__((nonnull(1,2)));
#include "apr_pools.h"
@@ -114,13 +118,15 @@ APR_DECLARE(void) apr_allocator_free(apr
* the allocator will never be destroyed.
*/
APR_DECLARE(void) apr_allocator_owner_set(apr_allocator_t *allocator,
- apr_pool_t *pool);
+ apr_pool_t *pool)
+ __attribute__((nonnull(1)));
/**
* Get the current owner of the allocator
* @param allocator The allocator to get the owner from
*/
-APR_DECLARE(apr_pool_t *) apr_allocator_owner_get(apr_allocator_t *allocator);
+APR_DECLARE(apr_pool_t *) apr_allocator_owner_get(apr_allocator_t *allocator)
+ __attribute__((nonnull(1)));
/**
* Set the current threshold at which the allocator should start
@@ -129,7 +135,8 @@ APR_DECLARE(apr_pool_t *) apr_allocator_
* @param size The threshold. 0 == unlimited.
*/
APR_DECLARE(void) apr_allocator_max_free_set(apr_allocator_t *allocator,
- apr_size_t size);
+ apr_size_t size)
+ __attribute__((nonnull(1)));
#include "apr_thread_mutex.h"
@@ -140,14 +147,16 @@ APR_DECLARE(void) apr_allocator_max_free
* @param mutex The mutex
*/
APR_DECLARE(void) apr_allocator_mutex_set(apr_allocator_t *allocator,
- apr_thread_mutex_t *mutex);
+ apr_thread_mutex_t *mutex)
+ __attribute__((nonnull(1)));
/**
* Get the mutex currently set for the allocator
* @param allocator The allocator
*/
APR_DECLARE(apr_thread_mutex_t *) apr_allocator_mutex_get(
- apr_allocator_t *allocator);
+ apr_allocator_t *allocator)
+ __attribute__((nonnull(1)));
#endif /* APR_HAS_THREADS */
Modified: apr/apr/trunk/include/apr_base64.h
URL: http://svn.apache.org/viewvc/apr/apr/trunk/include/apr_base64.h?rev=1103310&r1=1103309&r2=1103310&view=diff
==============================================================================
--- apr/apr/trunk/include/apr_base64.h (original)
+++ apr/apr/trunk/include/apr_base64.h Sun May 15 10:26:47 2011
@@ -57,7 +57,7 @@ extern "C" {
* @return the length of the string after it is encrypted, including the
* trailing \0
*/
-APR_DECLARE(int) apr_base64_encode_len(int len);
+APR_DECLARE(int) apr_base64_encode_len(int len) __attribute__((pure));
/**
* Encode a text string using base64encoding. On EBCDIC machines, the input
@@ -69,7 +69,8 @@ APR_DECLARE(int) apr_base64_encode_len(i
* @return the length of the encoded string, including the trailing \0
*/
APR_DECLARE(int) apr_base64_encode(char * coded_dst, const char *plain_src,
- int len_plain_src);
+ int len_plain_src)
+ __attribute__((nonnull(1,2)));
/**
* Encode an text string using base64encoding. This is the same as
@@ -81,9 +82,10 @@ APR_DECLARE(int) apr_base64_encode(char
* @param len_plain_src The length of the plain text string
* @return the length of the encoded string, including the trailing \0
*/
-APR_DECLARE(int) apr_base64_encode_binary(char * coded_dst,
- const unsigned char *plain_src,
- int len_plain_src);
+APR_DECLARE(int) apr_base64_encode_binary(char * coded_dst,
+ const unsigned char *plain_src,
+ int len_plain_src)
+ __attribute__((nonnull(1,2)));
/**
* Determine the maximum buffer length required to decode the plain text
@@ -91,7 +93,8 @@ APR_DECLARE(int) apr_base64_encode_binar
* @param coded_src The encoded string
* @return the maximum required buffer length for the plain text string
*/
-APR_DECLARE(int) apr_base64_decode_len(const char * coded_src);
+APR_DECLARE(int) apr_base64_decode_len(const char * coded_src)
+ __attribute__((nonnull(1))) __attribute__((pure));
/**
* Decode a string to plain text. On EBCDIC machines, the result is then
@@ -101,7 +104,8 @@ APR_DECLARE(int) apr_base64_decode_len(c
* @param coded_src The encoded string
* @return the length of the plain text string (excluding the trailing \0)
*/
-APR_DECLARE(int) apr_base64_decode(char * plain_dst, const char *coded_src);
+APR_DECLARE(int) apr_base64_decode(char * plain_dst, const char *coded_src)
+ __attribute__((nonnull(1,2)));
/**
* Decode an string to plain text. This is the same as apr_base64_decode()
@@ -113,7 +117,8 @@ APR_DECLARE(int) apr_base64_decode(char
* @return the length of the plain text string
*/
APR_DECLARE(int) apr_base64_decode_binary(unsigned char * plain_dst,
- const char *coded_src);
+ const char *coded_src)
+ __attribute__((nonnull(1,2)));
/** @} */
#ifdef __cplusplus
Modified: apr/apr/trunk/include/apr_buckets.h
URL: http://svn.apache.org/viewvc/apr/apr/trunk/include/apr_buckets.h?rev=1103310&r1=1103309&r2=1103310&view=diff
==============================================================================
--- apr/apr/trunk/include/apr_buckets.h (original)
+++ apr/apr/trunk/include/apr_buckets.h Sun May 15 10:26:47 2011
@@ -659,14 +659,16 @@ union apr_bucket_structs {
* @return The empty bucket brigade
*/
APR_DECLARE(apr_bucket_brigade *) apr_brigade_create(apr_pool_t *p,
- apr_bucket_alloc_t *list);
+ apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1,2)));
/**
* Destroy an entire bucket brigade. This includes destroying all of the
* buckets within the bucket brigade's bucket list.
* @param b The bucket brigade to destroy
*/
-APR_DECLARE(apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b);
+APR_DECLARE(apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b)
+ __attribute__((nonnull(1)));
/**
* Empty out an entire bucket brigade. This includes destroying all of the
@@ -679,7 +681,8 @@ APR_DECLARE(apr_status_t) apr_brigade_de
* you wish to reuse many times by destroying all of the buckets in
* the brigade and putting new buckets into it later.
*/
-APR_DECLARE(apr_status_t) apr_brigade_cleanup(void *data);
+APR_DECLARE(apr_status_t) apr_brigade_cleanup(void *data)
+ __attribute__((nonnull(1)));
/**
* Move the buckets from the tail end of the existing brigade @a b into
@@ -697,7 +700,8 @@ APR_DECLARE(apr_status_t) apr_brigade_cl
*/
APR_DECLARE(apr_bucket_brigade *) apr_brigade_split_ex(apr_bucket_brigade *b,
apr_bucket *e,
- apr_bucket_brigade *a);
+ apr_bucket_brigade *a)
+ __attribute__((nonnull(1,2)));
/**
* Create a new bucket brigade and move the buckets from the tail end
@@ -711,7 +715,8 @@ APR_DECLARE(apr_bucket_brigade *) apr_br
* so memory consumption should be carefully considered.
*/
APR_DECLARE(apr_bucket_brigade *) apr_brigade_split(apr_bucket_brigade *b,
- apr_bucket *e);
+ apr_bucket *e)
+ __attribute__((nonnull(1,2)));
/**
* Partition a bucket brigade at a given offset (in bytes from the start of
@@ -727,7 +732,8 @@ APR_DECLARE(apr_bucket_brigade *) apr_br
*/
APR_DECLARE(apr_status_t) apr_brigade_partition(apr_bucket_brigade *b,
apr_off_t point,
- apr_bucket **after_point);
+ apr_bucket **after_point)
+ __attribute__((nonnull(1,3)));
/**
* Return the total length of the brigade.
@@ -739,7 +745,8 @@ APR_DECLARE(apr_status_t) apr_brigade_pa
*/
APR_DECLARE(apr_status_t) apr_brigade_length(apr_bucket_brigade *bb,
int read_all,
- apr_off_t *length);
+ apr_off_t *length)
+ __attribute__((nonnull(1,3)));
/**
* Take a bucket brigade and store the data in a flat char*
@@ -750,7 +757,8 @@ APR_DECLARE(apr_status_t) apr_brigade_le
*/
APR_DECLARE(apr_status_t) apr_brigade_flatten(apr_bucket_brigade *bb,
char *c,
- apr_size_t *len);
+ apr_size_t *len)
+ __attribute__((nonnull(1,2,3)));
/**
* Creates a pool-allocated string representing a flat bucket brigade
@@ -762,7 +770,8 @@ APR_DECLARE(apr_status_t) apr_brigade_fl
APR_DECLARE(apr_status_t) apr_brigade_pflatten(apr_bucket_brigade *bb,
char **c,
apr_size_t *len,
- apr_pool_t *pool);
+ apr_pool_t *pool)
+ __attribute__((nonnull(1,2,3,4)));
/**
* Split a brigade to represent one LF line.
@@ -775,7 +784,8 @@ APR_DECLARE(apr_status_t) apr_brigade_pf
APR_DECLARE(apr_status_t) apr_brigade_split_line(apr_bucket_brigade *bbOut,
apr_bucket_brigade *bbIn,
apr_read_type_e block,
- apr_off_t maxbytes);
+ apr_off_t maxbytes)
+ __attribute__((nonnull(1,2)));
/**
* Create an iovec of the elements in a bucket_brigade... return number
@@ -787,7 +797,8 @@ APR_DECLARE(apr_status_t) apr_brigade_sp
* number of iovec elements actually filled out.
*/
APR_DECLARE(apr_status_t) apr_brigade_to_iovec(apr_bucket_brigade *b,
- struct iovec *vec, int *nvec);
+ struct iovec *vec, int *nvec)
+ __attribute__((nonnull(1,2,3)));
/**
* This function writes a list of strings into a bucket brigade.
@@ -800,7 +811,8 @@ APR_DECLARE(apr_status_t) apr_brigade_to
APR_DECLARE(apr_status_t) apr_brigade_vputstrs(apr_bucket_brigade *b,
apr_brigade_flush flush,
void *ctx,
- va_list va);
+ va_list va)
+ __attribute__((nonnull(1)));
/**
* This function writes a string into a bucket brigade.
@@ -827,7 +839,8 @@ APR_DECLARE(apr_status_t) apr_brigade_vp
*/
APR_DECLARE(apr_status_t) apr_brigade_write(apr_bucket_brigade *b,
apr_brigade_flush flush, void *ctx,
- const char *str, apr_size_t nbyte);
+ const char *str, apr_size_t nbyte)
+ __attribute__((nonnull(1,4)));
/**
* This function writes multiple strings into a bucket brigade.
@@ -842,7 +855,8 @@ APR_DECLARE(apr_status_t) apr_brigade_wr
apr_brigade_flush flush,
void *ctx,
const struct iovec *vec,
- apr_size_t nvec);
+ apr_size_t nvec)
+ __attribute__((nonnull(1,4)));
/**
* This function writes a string into a bucket brigade.
@@ -854,7 +868,8 @@ APR_DECLARE(apr_status_t) apr_brigade_wr
*/
APR_DECLARE(apr_status_t) apr_brigade_puts(apr_bucket_brigade *bb,
apr_brigade_flush flush, void *ctx,
- const char *str);
+ const char *str)
+ __attribute__((nonnull(1,4)));
/**
* This function writes a character into a bucket brigade.
@@ -866,7 +881,8 @@ APR_DECLARE(apr_status_t) apr_brigade_pu
*/
APR_DECLARE(apr_status_t) apr_brigade_putc(apr_bucket_brigade *b,
apr_brigade_flush flush, void *ctx,
- const char c);
+ const char c)
+ __attribute__((nonnull(1)));
/**
* This function writes an unspecified number of strings into a bucket brigade.
@@ -882,6 +898,7 @@ APR_DECLARE_NONSTD(apr_status_t) apr_bri
#if defined(__GNUC__) && __GNUC__ >= 4
__attribute__((sentinel))
#endif
+ __attribute__((nonnull(1)))
;
/**
@@ -898,7 +915,8 @@ APR_DECLARE_NONSTD(apr_status_t) apr_bri
apr_brigade_flush flush,
void *ctx,
const char *fmt, ...)
- __attribute__((format(printf,4,5)));
+ __attribute__((format(printf,4,5)))
+ __attribute__((nonnull(1)));
/**
* Evaluate a printf and put the resulting string at the end
@@ -913,7 +931,8 @@ APR_DECLARE_NONSTD(apr_status_t) apr_bri
APR_DECLARE(apr_status_t) apr_brigade_vprintf(apr_bucket_brigade *b,
apr_brigade_flush flush,
void *ctx,
- const char *fmt, va_list va);
+ const char *fmt, va_list va)
+ __attribute__((nonnull(1,4)));
/**
* Utility function to insert a file (or a segment of a file) onto the
@@ -931,7 +950,8 @@ APR_DECLARE(apr_bucket *) apr_brigade_in
apr_file_t *f,
apr_off_t start,
apr_off_t len,
- apr_pool_t *p);
+ apr_pool_t *p)
+ __attribute__((nonnull(1,2,5)));
@@ -959,26 +979,32 @@ APR_DECLARE_NONSTD(apr_bucket_alloc_t *)
* apr_allocator_t -- no automatic cleanups will happen.
* @warning The allocator must never be used by more than one thread at a time.
*/
-APR_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create_ex(apr_allocator_t *allocator);
+APR_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create_ex(
+ apr_allocator_t *allocator)
+ __attribute__((nonnull(1)));
/**
* Destroy a bucket allocator.
* @param list The allocator to be destroyed
*/
-APR_DECLARE_NONSTD(void) apr_bucket_alloc_destroy(apr_bucket_alloc_t *list);
+APR_DECLARE_NONSTD(void) apr_bucket_alloc_destroy(apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1)));
/**
* Allocate memory for use by the buckets.
* @param size The amount to allocate.
* @param list The allocator from which to allocate the memory.
*/
-APR_DECLARE_NONSTD(void *) apr_bucket_alloc(apr_size_t size, apr_bucket_alloc_t *list);
+APR_DECLARE_NONSTD(void *) apr_bucket_alloc(apr_size_t size,
+ apr_bucket_alloc_t *list)
+ __attribute__((nonnull(2)));
/**
* Free memory previously allocated with apr_bucket_alloc().
* @param block The block of memory to be freed.
*/
-APR_DECLARE_NONSTD(void) apr_bucket_free(void *block);
+APR_DECLARE_NONSTD(void) apr_bucket_free(void *block)
+ __attribute__((nonnull(1)));
/* ***** Bucket Functions ***** */
@@ -1339,7 +1365,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_eos
* @param b The bucket to make into an EOS bucket
* @return The new bucket, or NULL if allocation failed
*/
-APR_DECLARE(apr_bucket *) apr_bucket_eos_make(apr_bucket *b);
+APR_DECLARE(apr_bucket *) apr_bucket_eos_make(apr_bucket *b)
+ __attribute__((nonnull(1)));
/**
* Create a flush bucket. This indicates that filters should flush their
@@ -1348,7 +1375,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_eos
* @param list The freelist from which this bucket should be allocated
* @return The new bucket, or NULL if allocation failed
*/
-APR_DECLARE(apr_bucket *) apr_bucket_flush_create(apr_bucket_alloc_t *list);
+APR_DECLARE(apr_bucket *) apr_bucket_flush_create(apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1)));
/**
* Make the bucket passed in a FLUSH bucket. This indicates that filters
@@ -1357,7 +1385,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_flu
* @param b The bucket to make into a FLUSH bucket
* @return The new bucket, or NULL if allocation failed
*/
-APR_DECLARE(apr_bucket *) apr_bucket_flush_make(apr_bucket *b);
+APR_DECLARE(apr_bucket *) apr_bucket_flush_make(apr_bucket *b)
+ __attribute__((nonnull(1)));
/**
* Create a bucket referring to long-lived data.
@@ -1368,7 +1397,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_flu
*/
APR_DECLARE(apr_bucket *) apr_bucket_immortal_create(const char *buf,
apr_size_t nbyte,
- apr_bucket_alloc_t *list);
+ apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1,3)));
/**
* Make the bucket passed in a bucket refer to long-lived data
@@ -1379,7 +1409,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_imm
*/
APR_DECLARE(apr_bucket *) apr_bucket_immortal_make(apr_bucket *b,
const char *buf,
- apr_size_t nbyte);
+ apr_size_t nbyte)
+ __attribute__((nonnull(1,2)));
/**
* Create a bucket referring to data on the stack.
@@ -1390,7 +1421,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_imm
*/
APR_DECLARE(apr_bucket *) apr_bucket_transient_create(const char *buf,
apr_size_t nbyte,
- apr_bucket_alloc_t *list);
+ apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1,3)));
/**
* Make the bucket passed in a bucket refer to stack data
@@ -1401,7 +1433,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_tra
*/
APR_DECLARE(apr_bucket *) apr_bucket_transient_make(apr_bucket *b,
const char *buf,
- apr_size_t nbyte);
+ apr_size_t nbyte)
+ __attribute__((nonnull(1,2)));
/**
* Create a bucket referring to memory on the heap. If the caller asks
@@ -1420,7 +1453,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_tra
APR_DECLARE(apr_bucket *) apr_bucket_heap_create(const char *buf,
apr_size_t nbyte,
void (*free_func)(void *data),
- apr_bucket_alloc_t *list);
+ apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1,4)));
/**
* Make the bucket passed in a bucket refer to heap data
* @param b The bucket to make into a HEAP bucket
@@ -1432,7 +1466,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_hea
*/
APR_DECLARE(apr_bucket *) apr_bucket_heap_make(apr_bucket *b, const char *buf,
apr_size_t nbyte,
- void (*free_func)(void *data));
+ void (*free_func)(void *data))
+ __attribute__((nonnull(1,2)));
/**
* Create a bucket referring to memory allocated from a pool.
@@ -1446,7 +1481,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_hea
APR_DECLARE(apr_bucket *) apr_bucket_pool_create(const char *buf,
apr_size_t length,
apr_pool_t *pool,
- apr_bucket_alloc_t *list);
+ apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1,3,4)));
/**
* Make the bucket passed in a bucket refer to pool data
@@ -1458,7 +1494,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_poo
*/
APR_DECLARE(apr_bucket *) apr_bucket_pool_make(apr_bucket *b, const char *buf,
apr_size_t length,
- apr_pool_t *pool);
+ apr_pool_t *pool)
+ __attribute__((nonnull(1,2,4)));
#if APR_HAS_MMAP
/**
@@ -1473,7 +1510,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_poo
APR_DECLARE(apr_bucket *) apr_bucket_mmap_create(apr_mmap_t *mm,
apr_off_t start,
apr_size_t length,
- apr_bucket_alloc_t *list);
+ apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1,4)));
/**
* Make the bucket passed in a bucket refer to an MMAP'ed file
@@ -1486,7 +1524,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_mma
*/
APR_DECLARE(apr_bucket *) apr_bucket_mmap_make(apr_bucket *b, apr_mmap_t *mm,
apr_off_t start,
- apr_size_t length);
+ apr_size_t length)
+ __attribute__((nonnull(1,2)));
#endif
/**
@@ -1496,7 +1535,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_mma
* @return The new bucket, or NULL if allocation failed
*/
APR_DECLARE(apr_bucket *) apr_bucket_socket_create(apr_socket_t *thissock,
- apr_bucket_alloc_t *list);
+ apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1,2)));
/**
* Make the bucket passed in a bucket refer to a socket
* @param b The bucket to make into a SOCKET bucket
@@ -1504,7 +1544,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_soc
* @return The new bucket, or NULL if allocation failed
*/
APR_DECLARE(apr_bucket *) apr_bucket_socket_make(apr_bucket *b,
- apr_socket_t *thissock);
+ apr_socket_t *thissock)
+ __attribute__((nonnull(1,2)));
/**
* Create a bucket referring to a pipe.
@@ -1513,7 +1554,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_soc
* @return The new bucket, or NULL if allocation failed
*/
APR_DECLARE(apr_bucket *) apr_bucket_pipe_create(apr_file_t *thispipe,
- apr_bucket_alloc_t *list);
+ apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1,2)));
/**
* Make the bucket passed in a bucket refer to a pipe
@@ -1522,7 +1564,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_pip
* @return The new bucket, or NULL if allocation failed
*/
APR_DECLARE(apr_bucket *) apr_bucket_pipe_make(apr_bucket *b,
- apr_file_t *thispipe);
+ apr_file_t *thispipe)
+ __attribute__((nonnull(1,2)));
/**
* Create a bucket referring to a file.
@@ -1544,7 +1587,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_fil
apr_off_t offset,
apr_size_t len,
apr_pool_t *p,
- apr_bucket_alloc_t *list);
+ apr_bucket_alloc_t *list)
+ __attribute__((nonnull(1,4,5)));
/**
* Make the bucket passed in a bucket refer to a file
@@ -1558,7 +1602,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_fil
*/
APR_DECLARE(apr_bucket *) apr_bucket_file_make(apr_bucket *b, apr_file_t *fd,
apr_off_t offset,
- apr_size_t len, apr_pool_t *p);
+ apr_size_t len, apr_pool_t *p)
+ __attribute__((nonnull(1,2,5)));
/**
* Enable or disable memory-mapping for a FILE bucket (default is enabled)
@@ -1567,7 +1612,8 @@ APR_DECLARE(apr_bucket *) apr_bucket_fil
* @return APR_SUCCESS normally, or an error code if the operation fails
*/
APR_DECLARE(apr_status_t) apr_bucket_file_enable_mmap(apr_bucket *b,
- int enabled);
+ int enabled)
+ __attribute__((nonnull(1)));
/** @} */
#ifdef __cplusplus
Modified: apr/apr/trunk/include/apr_pools.h
URL: http://svn.apache.org/viewvc/apr/apr/trunk/include/apr_pools.h?rev=1103310&r1=1103309&r2=1103310&view=diff
==============================================================================
--- apr/apr/trunk/include/apr_pools.h (original)
+++ apr/apr/trunk/include/apr_pools.h Sun May 15 10:26:47 2011
@@ -196,7 +196,8 @@ APR_DECLARE(void) apr_pool_terminate(voi
APR_DECLARE(apr_status_t) apr_pool_create_ex(apr_pool_t **newpool,
apr_pool_t *parent,
apr_abortfunc_t abort_fn,
- apr_allocator_t *allocator);
+ apr_allocator_t *allocator)
+ __attribute__((nonnull(1)));
/**
* Create a new unmanaged pool.
@@ -216,7 +217,8 @@ APR_DECLARE(apr_status_t) apr_pool_creat
*/
APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex(apr_pool_t **newpool,
apr_abortfunc_t abort_fn,
- apr_allocator_t *allocator);
+ apr_allocator_t *allocator)
+ __attribute__((nonnull(1)));
/**
* Debug version of apr_pool_create_ex.
@@ -238,7 +240,8 @@ APR_DECLARE(apr_status_t) apr_pool_creat
apr_pool_t *parent,
apr_abortfunc_t abort_fn,
apr_allocator_t *allocator,
- const char *file_line);
+ const char *file_line)
+ __attribute__((nonnull(1)));
#if APR_POOL_DEBUG
#define apr_pool_create_ex(newpool, parent, abort_fn, allocator) \
@@ -264,7 +267,8 @@ APR_DECLARE(apr_status_t) apr_pool_creat
APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex_debug(apr_pool_t **newpool,
apr_abortfunc_t abort_fn,
apr_allocator_t *allocator,
- const char *file_line);
+ const char *file_line)
+ __attribute__((nonnull(1)));
#if APR_POOL_DEBUG
#define apr_pool_create_unmanaged_ex(newpool, abort_fn, allocator) \
@@ -320,7 +324,8 @@ APR_DECLARE(apr_status_t) apr_pool_creat
* Find the pool's allocator
* @param pool The pool to get the allocator from.
*/
-APR_DECLARE(apr_allocator_t *) apr_pool_allocator_get(apr_pool_t *pool);
+APR_DECLARE(apr_allocator_t *) apr_pool_allocator_get(apr_pool_t *pool)
+ __attribute__((nonnull(1)));
/**
* Clear all memory in the pool and run all the cleanups. This also destroys all
@@ -330,7 +335,7 @@ APR_DECLARE(apr_allocator_t *) apr_pool_
* to re-use this memory for the next allocation.
* @see apr_pool_destroy()
*/
-APR_DECLARE(void) apr_pool_clear(apr_pool_t *p);
+APR_DECLARE(void) apr_pool_clear(apr_pool_t *p) __attribute__((nonnull(1)));
/**
* Debug version of apr_pool_clear.
@@ -346,7 +351,8 @@ APR_DECLARE(void) apr_pool_clear(apr_poo
* and don't call apr_pool_destroy_clear directly.
*/
APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *p,
- const char *file_line);
+ const char *file_line)
+ __attribute__((nonnull(1)));
#if APR_POOL_DEBUG
#define apr_pool_clear(p) \
@@ -359,7 +365,7 @@ APR_DECLARE(void) apr_pool_clear_debug(a
* @param p The pool to destroy
* @remark This will actually free the memory
*/
-APR_DECLARE(void) apr_pool_destroy(apr_pool_t *p);
+APR_DECLARE(void) apr_pool_destroy(apr_pool_t *p) __attribute__((nonnull(1)));
/**
* Debug version of apr_pool_destroy.
@@ -375,7 +381,8 @@ APR_DECLARE(void) apr_pool_destroy(apr_p
* and don't call apr_pool_destroy_debug directly.
*/
APR_DECLARE(void) apr_pool_destroy_debug(apr_pool_t *p,
- const char *file_line);
+ const char *file_line)
+ __attribute__((nonnull(1)));
#if APR_POOL_DEBUG
#define apr_pool_destroy(p) \
@@ -393,7 +400,8 @@ APR_DECLARE(void) apr_pool_destroy_debug
* @param size The amount of memory to allocate
* @return The allocated memory
*/
-APR_DECLARE(void *) apr_palloc(apr_pool_t *p, apr_size_t size);
+APR_DECLARE(void *) apr_palloc(apr_pool_t *p, apr_size_t size)
+ __attribute__((nonnull(1)));
/**
* Debug version of apr_palloc
@@ -404,7 +412,8 @@ APR_DECLARE(void *) apr_palloc(apr_pool_
* @return See: apr_palloc
*/
APR_DECLARE(void *) apr_palloc_debug(apr_pool_t *p, apr_size_t size,
- const char *file_line);
+ const char *file_line)
+ __attribute__((nonnull(1)));
#if APR_POOL_DEBUG
#define apr_palloc(p, size) \
@@ -432,7 +441,8 @@ APR_DECLARE(void *) apr_pcalloc(apr_pool
* @return See: apr_pcalloc
*/
APR_DECLARE(void *) apr_pcalloc_debug(apr_pool_t *p, apr_size_t size,
- const char *file_line);
+ const char *file_line)
+ __attribute__((nonnull(1)));
#if APR_POOL_DEBUG
#define apr_pcalloc(p, size) \
@@ -453,21 +463,24 @@ APR_DECLARE(void *) apr_pcalloc_debug(ap
* deal with the error accordingly.
*/
APR_DECLARE(void) apr_pool_abort_set(apr_abortfunc_t abortfunc,
- apr_pool_t *pool);
+ apr_pool_t *pool)
+ __attribute__((nonnull(2)));
/**
* Get the abort function associated with the specified pool.
* @param pool The pool for retrieving the abort function.
* @return The abort function for the given pool.
*/
-APR_DECLARE(apr_abortfunc_t) apr_pool_abort_get(apr_pool_t *pool);
+APR_DECLARE(apr_abortfunc_t) apr_pool_abort_get(apr_pool_t *pool)
+ __attribute__((nonnull(1)));
/**
* Get the parent pool of the specified pool.
* @param pool The pool for retrieving the parent pool.
* @return The parent of the given pool.
*/
-APR_DECLARE(apr_pool_t *) apr_pool_parent_get(apr_pool_t *pool);
+APR_DECLARE(apr_pool_t *) apr_pool_parent_get(apr_pool_t *pool)
+ __attribute__((nonnull(1)));
/**
* Determine if pool a is an ancestor of pool b.
@@ -487,7 +500,8 @@ APR_DECLARE(int) apr_pool_is_ancestor(ap
* @param pool The pool to tag
* @param tag The tag
*/
-APR_DECLARE(void) apr_pool_tag(apr_pool_t *pool, const char *tag);
+APR_DECLARE(void) apr_pool_tag(apr_pool_t *pool, const char *tag)
+ __attribute__((nonnull(1)));
/*
@@ -513,11 +527,11 @@ APR_DECLARE(void) apr_pool_tag(apr_pool_
* key names is a typical way to help ensure this uniqueness.
*
*/
-APR_DECLARE(apr_status_t) apr_pool_userdata_set(
- const void *data,
- const char *key,
- apr_status_t (*cleanup)(void *),
- apr_pool_t *pool);
+APR_DECLARE(apr_status_t) apr_pool_userdata_set(const void *data,
+ const char *key,
+ apr_status_t (*cleanup)(void *),
+ apr_pool_t *pool)
+ __attribute__((nonnull(2,4)));
/**
* Set the data associated with the current pool
@@ -539,10 +553,10 @@ APR_DECLARE(apr_status_t) apr_pool_userd
*
*/
APR_DECLARE(apr_status_t) apr_pool_userdata_setn(
- const void *data,
- const char *key,
- apr_status_t (*cleanup)(void *),
- apr_pool_t *pool);
+ const void *data, const char *key,
+ apr_status_t (*cleanup)(void *),
+ apr_pool_t *pool)
+ __attribute__((nonnull(2,4)));
/**
* Return the data associated with the current pool.
@@ -551,7 +565,8 @@ APR_DECLARE(apr_status_t) apr_pool_userd
* @param pool The current pool.
*/
APR_DECLARE(apr_status_t) apr_pool_userdata_get(void **data, const char *key,
- apr_pool_t *pool);
+ apr_pool_t *pool)
+ __attribute__((nonnull(1,2,3)));
/**
@@ -578,10 +593,10 @@ APR_DECLARE(apr_status_t) apr_pool_userd
* to exec - this function is called in the child, obviously!
*/
APR_DECLARE(void) apr_pool_cleanup_register(
- apr_pool_t *p,
- const void *data,
- apr_status_t (*plain_cleanup)(void *),
- apr_status_t (*child_cleanup)(void *));
+ apr_pool_t *p, const void *data,
+ apr_status_t (*plain_cleanup)(void *),
+ apr_status_t (*child_cleanup)(void *))
+ __attribute__((nonnull(3,4)));
/**
* Register a function to be called when a pool is cleared or destroyed.
@@ -596,9 +611,9 @@ APR_DECLARE(void) apr_pool_cleanup_regis
* or destroyed
*/
APR_DECLARE(void) apr_pool_pre_cleanup_register(
- apr_pool_t *p,
- const void *data,
- apr_status_t (*plain_cleanup)(void *));
+ apr_pool_t *p, const void *data,
+ apr_status_t (*plain_cleanup)(void *))
+ __attribute__((nonnull(3)));
/**
* Remove a previously registered cleanup function.
@@ -613,7 +628,8 @@ APR_DECLARE(void) apr_pool_pre_cleanup_r
* function
*/
APR_DECLARE(void) apr_pool_cleanup_kill(apr_pool_t *p, const void *data,
- apr_status_t (*cleanup)(void *));
+ apr_status_t (*cleanup)(void *))
+ __attribute__((nonnull(3)));
/**
* Replace the child cleanup function of a previously registered cleanup.
@@ -628,10 +644,10 @@ APR_DECLARE(void) apr_pool_cleanup_kill(
* @param child_cleanup The function to register as the child cleanup
*/
APR_DECLARE(void) apr_pool_child_cleanup_set(
- apr_pool_t *p,
- const void *data,
- apr_status_t (*plain_cleanup)(void *),
- apr_status_t (*child_cleanup)(void *));
+ apr_pool_t *p, const void *data,
+ apr_status_t (*plain_cleanup)(void *),
+ apr_status_t (*child_cleanup)(void *))
+ __attribute__((nonnull(3,4)));
/**
* Run the specified cleanup function immediately and unregister it.
@@ -644,10 +660,9 @@ APR_DECLARE(void) apr_pool_child_cleanup
* @param data The data to remove from cleanup
* @param cleanup The function to remove from cleanup
*/
-APR_DECLARE(apr_status_t) apr_pool_cleanup_run(
- apr_pool_t *p,
- void *data,
- apr_status_t (*cleanup)(void *));
+APR_DECLARE(apr_status_t) apr_pool_cleanup_run(apr_pool_t *p, void *data,
+ apr_status_t (*cleanup)(void *))
+ __attribute__((nonnull(3)));
/**
* An empty cleanup function.
@@ -716,7 +731,8 @@ APR_DECLARE(void) apr_pool_cleanup_for_e
* @param p The parent pool
* @param sub The subpool
*/
-APR_DECLARE(void) apr_pool_join(apr_pool_t *p, apr_pool_t *sub);
+APR_DECLARE(void) apr_pool_join(apr_pool_t *p, apr_pool_t *sub)
+ __attribute__((nonnull(2)));
/**
* Find a pool from something allocated in it.
@@ -731,7 +747,8 @@ APR_DECLARE(apr_pool_t *) apr_pool_find(
* @param recurse Recurse/include the subpools' sizes
* @return The number of bytes
*/
-APR_DECLARE(apr_size_t) apr_pool_num_bytes(apr_pool_t *p, int recurse);
+APR_DECLARE(apr_size_t) apr_pool_num_bytes(apr_pool_t *p, int recurse)
+ __attribute__((nonnull(1)));
/**
* Lock a pool