It can be very dangerous to do this
File crypto.h
#define Malloc(num) CRYPTO_malloc((int)num,__FILE__,__LINE__)
#define Realloc(addr,num) \
CRYPTO_realloc((char *)addr,(int)num,__FILE__,__LINE__)
#define Remalloc(addr,num) \
CRYPTO_remalloc((char **)addr,(int)num,__FILE__,__LINE__)
#define FreeFunc CRYPTO_free
#define Free(addr) CRYPTO_free(addr)
If a user wants to define the functions Malloc, Realloc, Free etc...
Example, in the file Objidl.h (visual studio)
MIDL_INTERFACE("00000002-0000-0000-C000-000000000046")
IMalloc : public IUnknown
{
public:
virtual void __RPC_FAR *STDMETHODCALLTYPE Alloc(
/* [in] */ ULONG cb) = 0;
virtual void __RPC_FAR *STDMETHODCALLTYPE Realloc(
/* [in] */ void __RPC_FAR *pv,
/* [in] */ ULONG cb) = 0;
....
After the preprocessor this file becomes:
struct __declspec(uuid("00000002-0000-0000-C000-000000000046"))
__declspec(novtable)
IMalloc : public IUnknown
{
public:
virtual void *__stdcall Alloc(
ULONG cb) = 0;
virtual void *__stdcall
CRYPTO_realloc((char *)void *pv,(int)ULONG
cb,"D:\\core\\2.0\\CompilTools\\visualstudio\\3.0\\VC98\\INCLUDE\\objidl.h",
786) = 0;
And it doesn't compile :(
Each macro definition can be prefixed by "SSL_"
Xav.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]