PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ double_nan_to_wkb_buf()

static uint8_t* double_nan_to_wkb_buf ( uint8_t *  buf,
uint8_t  variant 
)
static

Definition at line 240 of file lwout_wkb.c.

241 {
242 #define NAN_SIZE 8
243  const uint8_t ndr_nan[NAN_SIZE] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f};
244  const uint8_t xdr_nan[NAN_SIZE] = {0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
245 
246  if ( variant & WKB_HEX )
247  {
248  for (int i = 0; i < NAN_SIZE; i++)
249  {
250  uint8_t b = (variant & WKB_NDR) ? ndr_nan[i] : xdr_nan[i];
251  /* Top four bits to 0-F */
252  buf[2*i] = hexchr[b >> 4];
253  /* Bottom four bits to 0-F */
254  buf[2*i + 1] = hexchr[b & 0x0F];
255  }
256  return buf + (2 * NAN_SIZE);
257  }
258  else
259  {
260  for (int i = 0; i < NAN_SIZE; i++)
261  {
262  buf[i] = (variant & WKB_NDR) ? ndr_nan[i] : xdr_nan[i];;
263  }
264  return buf + NAN_SIZE;
265  }
266 }
static uint8_t variant
Definition: cu_in_twkb.c:26
#define WKB_HEX
Definition: liblwgeom.h:2126
#define WKB_NDR
Definition: liblwgeom.h:2124
#define NAN_SIZE
static char * hexchr
Definition: lwout_wkb.c:37

References hexchr, NAN_SIZE, variant, WKB_HEX, and WKB_NDR.

Referenced by empty_to_wkb_buf().

Here is the caller graph for this function: