From 9817f1793f876fe6c3ab96cfe3ae96775f812ae3 Mon Sep 17 00:00:00 2001
From: Ties de Kock <ties@tiesdekock.nl>
Date: Sun, 16 Jun 2013 19:00:48 +0200
Subject: [PATCH] apply earlier fixes to second control flow

---
 xbob/flandmark/__init__.py |  2 +-
 xbob/flandmark/ext/ext.cpp | 11 +++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/xbob/flandmark/__init__.py b/xbob/flandmark/__init__.py
index fb661e8..78e5ae9 100644
--- a/xbob/flandmark/__init__.py
+++ b/xbob/flandmark/__init__.py
@@ -120,7 +120,7 @@ class Localizer(_flandmark.Localizer):
       return super(Localizer, self).__call__(gray, b_y, b_x, b_height, b_width)
 
     elif image.ndim == 2:
-      return super(Localizer, self).__call__(gray, b_y, b_x, b_height, b_width)
+      return super(Localizer, self).__call__(image, b_y, b_x, b_height, b_width)
 
     else:
       raise TypeError, "Localizer accepts images as numpy.ndarray objects with either 2 or 3 dimensions"
diff --git a/xbob/flandmark/ext/ext.cpp b/xbob/flandmark/ext/ext.cpp
index 5997d52..9fc71a1 100644
--- a/xbob/flandmark/ext/ext.cpp
+++ b/xbob/flandmark/ext/ext.cpp
@@ -139,16 +139,19 @@ class Localizer {
       ipl_image->imageData = (char*)input.bz<uint8_t,2>().data();
 
       int bbox[4] = {b_x, b_y, b_x + b_width, b_y + b_height};
+      int flandmark_result;
       {
         bob::python::no_gil unlock;
-        flandmark_detect(ipl_image.get(), bbox, m_flandmark.get(),
+        flandmark_result = flandmark_detect(ipl_image.get(), bbox, m_flandmark.get(),
             m_landmarks.get());
       }
-
+      
       list lmlist; ///< landmark list
 
-      for (int i = 0; i < (2*m_flandmark->data.options.M); i += 2) {
-        lmlist.append(make_tuple(m_landmarks[i], m_landmarks[i+1]));
+      if (flandmark_result == NO_ERR) {
+        for (int i = 0; i < (2*m_flandmark->data.options.M); i += 2) {
+          lmlist.append(make_tuple(m_landmarks[i], m_landmarks[i+1]));
+        }
       }
 
       return object(lmlist);
-- 
GitLab