r17888: use talloc_*_ptrtype() macros as wrappers arround the talloc_*_size()
authorStefan Metzmacher <metze@samba.org>
Mon, 28 Aug 2006 17:17:39 +0000 (17:17 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:16:51 +0000 (14:16 -0500)
functions to get rid of c++ warnings

metze
(This used to be commit 7579503bb886e9c4cc08756013f5311ce550c9fd)

source4/librpc/ndr/libndr.h
source4/scripting/ejs/ejsrpc.h

index 59bfc6ab000b6958d33ded1c0bf628dda9505acf..1076936c1d75344163bf6e9f2e1d05e2dc0dce26 100644 (file)
@@ -255,29 +255,28 @@ enum ndr_compression_alg {
        }\
 } while(0)
 
-#define NDR_PULL_ALLOC_SIZE(ndr, s, size) do { \
+#define NDR_PULL_ALLOC(ndr, s) do { \
        _NDR_PULL_FIX_CURRENT_MEM_CTX(ndr);\
-       (s) = talloc_size(ndr->current_mem_ctx, size); \
-       if (!(s)) return ndr_pull_error(ndr, NDR_ERR_ALLOC, "Alloc %u failed: %s\n",(unsigned)size, __location__); \
+       (s) = talloc_ptrtype(ndr->current_mem_ctx, (s)); \
+       if (!(s)) return ndr_pull_error(ndr, NDR_ERR_ALLOC, "Alloc %s failed: %s\n", # s, __location__); \
 } while (0)
 
-#define NDR_PULL_ALLOC(ndr, s) NDR_PULL_ALLOC_SIZE(ndr, s, sizeof(*(s)))
-
-#define NDR_PULL_ALLOC_N_SIZE(ndr, s, n, elsize) do { \
+#define NDR_PULL_ALLOC_N(ndr, s, n) do { \
        _NDR_PULL_FIX_CURRENT_MEM_CTX(ndr);\
-       (s) = talloc_array_size(ndr->current_mem_ctx, elsize, n); \
-       if (!(s)) return ndr_pull_error(ndr, NDR_ERR_ALLOC, "Alloc %u * %u failed: %s\n", (unsigned)n, (unsigned)elsize, __location__); \
+       (s) = talloc_array_ptrtype(ndr->current_mem_ctx, (s), n); \
+       if (!(s)) return ndr_pull_error(ndr, NDR_ERR_ALLOC, "Alloc %u * %s failed: %s\n", (unsigned)n, # s, __location__); \
 } while (0)
 
-#define NDR_PULL_ALLOC_N(ndr, s, n) NDR_PULL_ALLOC_N_SIZE(ndr, s, n, sizeof(*(s)))
-
 
 #define NDR_PUSH_ALLOC_SIZE(ndr, s, size) do { \
        (s) = talloc_size(ndr, size); \
        if (!(s)) return ndr_push_error(ndr, NDR_ERR_ALLOC, "push alloc %u failed: %s\n", (unsigned)size, __location__); \
 } while (0)
 
-#define NDR_PUSH_ALLOC(ndr, s) NDR_PUSH_ALLOC_SIZE(ndr, s, sizeof(*(s)))
+#define NDR_PUSH_ALLOC(ndr, s) do { \
+       (s) = talloc_ptrtype(ndr, (s)); \
+       if (!(s)) return ndr_push_error(ndr, NDR_ERR_ALLOC, "push alloc %s failed: %s\n", # s, __location__); \
+} while (0)
 
 /* these are used when generic fn pointers are needed for ndr push/pull fns */
 typedef NTSTATUS (*ndr_push_flags_fn_t)(struct ndr_push *, int ndr_flags, const void *);
index a320392201f5a535dc83a42f9d1a4785abf6cce7..bc9a38fcb3c8597249354e52573d6fbcb02c8144 100644 (file)
@@ -139,20 +139,16 @@ NTSTATUS ejs_pull_winreg_String(struct ejs_rpc *ejs,
 NTSTATUS ejs_push_winreg_String(struct ejs_rpc *ejs, 
                             struct MprVar *v, const char *name, const struct winreg_String *r);
 
-#define EJS_ALLOC_SIZE(ejs, s, size) do { \
-  (s) = talloc_size(ejs, size); \
+#define EJS_ALLOC(ejs, s) do { \
+  (s) = talloc_ptrtype(ejs, (s)); \
   if (!(s)) return ejs_panic(ejs, "out of memory"); \
 } while (0)
 
-#define EJS_ALLOC(ejs, s) EJS_ALLOC_SIZE(ejs, s, sizeof(*(s)))
-
-#define EJS_ALLOC_N_SIZE(ejs, s, n, elsize) do { \
-       (s) = talloc_array_size(ejs, elsize, n); \
+#define EJS_ALLOC_N(ejs, s, n) do { \
+       (s) = talloc_array_ptrtype(ejs, (s), n); \
        if (!(s)) return ejs_panic(ejs, "out of memory"); \
 } while (0)
 
-#define EJS_ALLOC_N(ejs, s, n) EJS_ALLOC_N_SIZE(ejs, s, n, sizeof(*(s)))
-
 /* some types are equivalent for ejs */
 #define ejs_pull_dom_sid2 ejs_pull_dom_sid
 #define ejs_push_dom_sid2 ejs_push_dom_sid