- Fixed bug that caused a segfault when an invalid sort column was specified
  (thanks to Uli Martens).
This commit is contained in:
Paul Beckingham
2012-07-16 17:04:25 -04:00
parent 1920b6249e
commit 051274b960

View File

@@ -34,6 +34,7 @@
#include <Duration.h> #include <Duration.h>
#include <Task.h> #include <Task.h>
#include <text.h> #include <text.h>
#include <i18n.h>
extern Context context; extern Context context;
@@ -72,6 +73,8 @@ static bool sort_compare (int left, int right)
std::string field; std::string field;
bool ascending; bool ascending;
Column* column;
int left_number; int left_number;
int right_number; int right_number;
float left_real; float left_real;
@@ -239,9 +242,9 @@ static bool sort_compare (int left, int right)
} }
// UDAs. // UDAs.
else else if ((column = context.columns[field]) != NULL)
{ {
std::string type = context.columns[field]->type (); std::string type = column->type ();
if (type == "numeric") if (type == "numeric")
{ {
left_real = (*global_data)[left].urgency (); left_real = (*global_data)[left].urgency ();
@@ -297,6 +300,8 @@ static bool sort_compare (int left, int right)
return left_duration > right_duration; return left_duration > right_duration;
} }
} }
else
throw format (STRING_INVALID_SORT_COL, field);
} }
return false; return false;