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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.