PostGIS  3.4.0dev-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 241 of file lwout_wkb.c.

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

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

Referenced by empty_to_wkb_buf().

Here is the caller graph for this function: