tdbc::odbc

Hex Artifact Content
Login

Artifact 310c2217b839c148b1f8fe5ffb4f5adc3d89c167:


0000: 2f 2a 0a 20 2a 20 4d 61 63 72 6f 73 20 75 73 65  /*. * Macros use
0010: 64 20 74 6f 20 63 61 73 74 20 62 65 74 77 65 65  d to cast betwee
0020: 6e 20 70 6f 69 6e 74 65 72 73 20 61 6e 64 20 69  n pointers and i
0030: 6e 74 65 67 65 72 73 20 28 65 2e 67 2e 20 77 68  ntegers (e.g. wh
0040: 65 6e 20 73 74 6f 72 69 6e 67 20 61 6e 20 69 6e  en storing an in
0050: 74 0a 20 2a 20 69 6e 20 43 6c 69 65 6e 74 44 61  t. * in ClientDa
0060: 74 61 29 2c 20 6f 6e 20 36 34 2d 62 69 74 20 61  ta), on 64-bit a
0070: 72 63 68 69 74 65 63 74 75 72 65 73 20 74 68 65  rchitectures the
0080: 79 20 61 76 6f 69 64 20 67 63 63 20 77 61 72 6e  y avoid gcc warn
0090: 69 6e 67 20 61 62 6f 75 74 20 22 63 61 73 74 0a  ing about "cast.
00a0: 20 2a 20 74 6f 2f 66 72 6f 6d 20 70 6f 69 6e 74   * to/from point
00b0: 65 72 20 66 72 6f 6d 2f 74 6f 20 69 6e 74 65 67  er from/to integ
00c0: 65 72 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20  er of different 
00d0: 73 69 7a 65 22 2e 0a 20 2a 2f 0a 0a 23 69 66 20  size".. */..#if 
00e0: 21 64 65 66 69 6e 65 64 28 49 4e 54 32 50 54 52  !defined(INT2PTR
00f0: 29 20 26 26 20 21 64 65 66 69 6e 65 64 28 50 54  ) && !defined(PT
0100: 52 32 49 4e 54 29 0a 23 20 20 20 69 66 20 64 65  R2INT).#   if de
0110: 66 69 6e 65 64 28 48 41 56 45 5f 49 4e 54 50 54  fined(HAVE_INTPT
0120: 52 5f 54 29 20 7c 7c 20 64 65 66 69 6e 65 64 28  R_T) || defined(
0130: 69 6e 74 70 74 72 5f 74 29 0a 23 09 64 65 66 69  intptr_t).#.defi
0140: 6e 65 20 49 4e 54 32 50 54 52 28 70 29 20 28 28  ne INT2PTR(p) ((
0150: 76 6f 69 64 20 2a 29 28 69 6e 74 70 74 72 5f 74  void *)(intptr_t
0160: 29 28 70 29 29 0a 23 09 64 65 66 69 6e 65 20 50  )(p)).#.define P
0170: 54 52 32 49 4e 54 28 70 29 20 28 28 69 6e 74 29  TR2INT(p) ((int)
0180: 28 69 6e 74 70 74 72 5f 74 29 28 70 29 29 0a 23  (intptr_t)(p)).#
0190: 20 20 20 65 6c 73 65 0a 23 09 64 65 66 69 6e 65     else.#.define
01a0: 20 49 4e 54 32 50 54 52 28 70 29 20 28 28 76 6f   INT2PTR(p) ((vo
01b0: 69 64 20 2a 29 28 70 29 29 0a 23 09 64 65 66 69  id *)(p)).#.defi
01c0: 6e 65 20 50 54 52 32 49 4e 54 28 70 29 20 28 28  ne PTR2INT(p) ((
01d0: 69 6e 74 29 28 70 29 29 0a 23 20 20 20 65 6e 64  int)(p)).#   end
01e0: 69 66 0a 23 65 6e 64 69 66 0a 23 69 66 20 21 64  if.#endif.#if !d
01f0: 65 66 69 6e 65 64 28 55 49 4e 54 32 50 54 52 29  efined(UINT2PTR)
0200: 20 26 26 20 21 64 65 66 69 6e 65 64 28 50 54 52   && !defined(PTR
0210: 32 55 49 4e 54 29 0a 23 20 20 20 69 66 20 64 65  2UINT).#   if de
0220: 66 69 6e 65 64 28 48 41 56 45 5f 55 49 4e 54 50  fined(HAVE_UINTP
0230: 54 52 5f 54 29 20 7c 7c 20 64 65 66 69 6e 65 64  TR_T) || defined
0240: 28 75 69 6e 74 70 74 72 5f 74 29 0a 23 09 64 65  (uintptr_t).#.de
0250: 66 69 6e 65 20 55 49 4e 54 32 50 54 52 28 70 29  fine UINT2PTR(p)
0260: 20 28 28 76 6f 69 64 20 2a 29 28 75 69 6e 74 70   ((void *)(uintp
0270: 74 72 5f 74 29 28 70 29 29 0a 23 09 64 65 66 69  tr_t)(p)).#.defi
0280: 6e 65 20 50 54 52 32 55 49 4e 54 28 70 29 20 28  ne PTR2UINT(p) (
0290: 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 29 28 75  (unsigned int)(u
02a0: 69 6e 74 70 74 72 5f 74 29 28 70 29 29 0a 23 20  intptr_t)(p)).# 
02b0: 20 20 65 6c 73 65 0a 23 09 64 65 66 69 6e 65 20    else.#.define 
02c0: 55 49 4e 54 32 50 54 52 28 70 29 20 28 28 76 6f  UINT2PTR(p) ((vo
02d0: 69 64 20 2a 29 28 70 29 29 0a 23 09 64 65 66 69  id *)(p)).#.defi
02e0: 6e 65 20 50 54 52 32 55 49 4e 54 28 70 29 20 28  ne PTR2UINT(p) (
02f0: 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 29 28 70  (unsigned int)(p
0300: 29 29 0a 23 20 20 20 65 6e 64 69 66 0a 23 65 6e  )).#   endif.#en
0310: 64 69 66 0a                                      dif.