Re: Patch proposal
[email protected] (Christos Zoulas)
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Organization | Astron Software |
| Message-ID | <[email protected]> |
On Jun 16, 4:01pm, [email protected] (Frediano Ziglio) wrote: -- Subject: Re: [freetds] Patch proposal | 2011/6/16 Christos Zoulas <[email protected]>: | > On Jun 16, 9:32am, [email protected] (Frediano Ziglio) wrote: | > -- Subject: [freetds] Patch proposal | > | > | Hi, | > | I would like to include this patch (and follows). It define some | > | macro to merge allocation and casting. | > | > Please do not cast malloc. We are not in the 80's anymore and casting | > malloc() hides bugs. For example on an _LP64 bit machine casting malloc() | > will hide the warning of integer to pointer conversion when there is no | > prototype in scope. | > | > christos | | integer ?? No Christos these macros just convert the void* pointer to | a specialized pointer. Just lika a C++ "new int[10]" return a int* a | tds_zallocn(int, 10) will return a int*. It does not need to to return the specialized type. You only need the cast in c++, and this is what "void *" was created for. This cast hides bugs though (unless you are using gcc which warns anyway): $ cat foo.c int main(void) { char *p = (char *)malloc(100000000); printf("%p\n", p); return 0; } $ cc foo.c $ ./a.out 0x7d9d1010 $ cat foo.c #include <stdlib.h> int main(void) { char *p = (char *)malloc(100000000); printf("%p\n", p); return 0; } $ cc foo.c $ ./a.out 0x2b07d8720010 christos _______________________________________________ FreeTDS mailing list [email protected] http://lists.ibiblio.org/mailman/listinfo/freetds