summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b>2005-02-09 22:39:22 +0000
committerwr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b>2005-02-09 22:39:22 +0000
commit01fb6ca159328f4c6d32098098d50d805975d777 (patch)
tree0e14ca95dfa7014043576b390639ab9087ae8d47
parent7b0db96df1380ea1eea851a7beda8c4de90a2db2 (diff)
downloadvdr-plugin-muggle-01fb6ca159328f4c6d32098098d50d805975d777.tar.gz
vdr-plugin-muggle-01fb6ca159328f4c6d32098098d50d805975d777.tar.bz2
fix segfault in mgSelection::enter, fix order in collections
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk/muggle-plugin@469 e10066b5-e1e2-0310-b819-94efdf66514b
-rw-r--r--mg_db.c2
-rw-r--r--mg_order.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/mg_db.c b/mg_db.c
index cba9baf..aa84ef4 100644
--- a/mg_db.c
+++ b/mg_db.c
@@ -1012,6 +1012,8 @@ bool mgSelection::enter (unsigned int position)
return false;
setPosition (position);
position = gotoPosition(); // reload adjusted position
+ if (values.size()==0)
+ return false;
string value = values[position];
string id = m_ids[position];
mgSelStrings prev;
diff --git a/mg_order.c b/mg_order.c
index cc93141..93463b5 100644
--- a/mg_order.c
+++ b/mg_order.c
@@ -625,7 +625,7 @@ operator==(const mgOrder& a, const mgOrder &b)
const mgOrder&
mgOrder::operator=(const mgOrder& from)
{
- Keys.clear();
+ clear();
for (unsigned int i = 0; i < from.size();i++)
{
mgKey *k = ktGenerate(from.getKeyType(i),m_db);
@@ -811,7 +811,8 @@ cleanagain:
goto cleanagain;
}
}
- if (!is_unique)
+ bool IsCollection = size()==0 ? false : Keys[0]->Type()==keyCollection;
+ if (!IsCollection && !is_unique)
{
if (!album_found)
Keys.push_back(ktGenerate(keyAlbum,m_db));