зеркало из https://github.com/github/putty.git
Replace the type-checking COMPTR macro with my current idea of best
practice in type-check macros. [originally from svn r9963]
This commit is contained in:
Родитель
353b85be67
Коммит
0a26bd74e1
|
@ -353,12 +353,12 @@ static const PROPERTYKEY PKEY_Title = {
|
|||
0x00000002
|
||||
};
|
||||
|
||||
/* Type-checking macro to provide arguments for CoCreateInstance() etc.
|
||||
* The pointer arithmetic is a compile-time pointer type check that 'obj'
|
||||
* really is a 'type **', but is intended to have no effect at runtime. */
|
||||
/* Type-checking macro to provide arguments for CoCreateInstance()
|
||||
* etc, ensuring that 'obj' really is a 'type **'. */
|
||||
#define typecheck(checkexpr, result) \
|
||||
(sizeof(checkexpr) ? (result) : (result))
|
||||
#define COMPTR(type, obj) &IID_##type, \
|
||||
(void **)(void *)((obj) + (sizeof((obj)-(type **)(obj))) \
|
||||
- (sizeof((obj)-(type **)(obj))))
|
||||
typecheck((obj)-(type **)(obj), (void **)(void *)(obj))
|
||||
|
||||
static char putty_path[2048];
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче