[gegl] gegl_sampler_get: check arguments for nan/infinity
- From: Øyvind Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl] gegl_sampler_get: check arguments for nan/infinity
- Date: Sun, 21 Feb 2016 11:32:45 +0000 (UTC)
commit 2478b04b9ed1bf282d7e61d99a0560ae4d58f51a
Author: Øyvind Kolås <pippin gimp org>
Date: Sun Feb 21 12:31:59 2016 +0100
gegl_sampler_get: check arguments for nan/infinity
gegl/buffer/gegl-buffer.h | 3 +++
gegl/buffer/gegl-sampler.c | 5 +++++
2 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/gegl/buffer/gegl-buffer.h b/gegl/buffer/gegl-buffer.h
index da4ad2a..65dce8d 100644
--- a/gegl/buffer/gegl-buffer.h
+++ b/gegl/buffer/gegl-buffer.h
@@ -478,6 +478,9 @@ typedef void (*GeglSamplerGetFun) (GeglSampler *self,
/**
* gegl_sampler_get_fun: (skip)
+ *
+ * Get the raw sampler function, the raw sampler function does not do
+ * additional NaN / inifinity checks on passed in coordinates.
*/
GeglSamplerGetFun gegl_sampler_get_fun (GeglSampler *sampler);
diff --git a/gegl/buffer/gegl-sampler.c b/gegl/buffer/gegl-sampler.c
index cb91aba..1d79e2f 100644
--- a/gegl/buffer/gegl-sampler.c
+++ b/gegl/buffer/gegl-sampler.c
@@ -157,6 +157,11 @@ gegl_sampler_get (GeglSampler *self,
void *output,
GeglAbyssPolicy repeat_mode)
{
+ if (G_UNLIKELY(!isfinite (x)))
+ x = 0.0;
+ if (G_UNLIKELY(!isfinite (y)))
+ y = 0.0;
+
if (self->lvel)
{
double factor = 1.0 / (1 << self->lvel);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]