//convert postgresql BOX to BOX2D
-BOX2DFLOAT4 *
-box_to_box2df(BOX *box)
-{
- BOX2DFLOAT4 *result = (BOX2DFLOAT4*) lwalloc(sizeof(BOX2DFLOAT4));
-
- if (box == NULL)
- return result;
-
- result->xmin = nextDown_f(box->low.x);
- result->ymin = nextDown_f(box->low.y);
-
- result->xmax = nextUp_f(box->high.x);
- result->ymax = nextUp_f(box->high.x);
-
- return result;
-}
-
-// convert BOX2D to postgresql BOX
-BOX box2df_to_box(BOX2DFLOAT4 *box)
+void
+box_to_box2df(BOX *box, BOX2DFLOAT4 *out)
{
- BOX result;
-
- if (box == NULL)
- return result;
+#if PARANOIA_LEVEL > 0
+ if (box == NULL) return;
+#endif
- result.low.x = nextDown_d(box->xmin);
- result.low.y = nextDown_d(box->ymin);
+ out->xmin = nextDown_f(box->low.x);
+ out->ymin = nextDown_f(box->low.y);
- result.high.x = nextUp_d(box->xmax);
- result.high.y = nextUp_d(box->ymax);
+ out->xmax = nextUp_f(box->high.x);
+ out->ymax = nextUp_f(box->high.x);
- return result;
}
// convert BOX2D to postgresql BOX
void
box2df_to_box_p(BOX2DFLOAT4 *box, BOX *out)
{
+#if PARANOIA_LEVEL > 0
if (box == NULL) return;
+#endif
out->low.x = nextDown_d(box->xmin);
out->low.y = nextDown_d(box->ymin);
/* PG-dependant */
/* BOX is postgresql standard type */
-extern BOX2DFLOAT4 *box_to_box2df(BOX *box);
-extern BOX box2df_to_box(BOX2DFLOAT4 *box);
+extern void box_to_box2df_p(BOX *box, BOX2DFLOAT4 *out);
extern void box2df_to_box_p(BOX2DFLOAT4 *box, BOX *out);
/* PG-exposed */