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
commitb8fb6ea53b93a75de84d8fc2e29495881c6527a7 (patch)
treedb23f5a10d46a760566276f0952c52bde108517f
parentc97715f75d050c51654d83182f683f3ddf208b66 (diff)
downloadvdr-plugin-muggle-b8fb6ea53b93a75de84d8fc2e29495881c6527a7.tar.gz
vdr-plugin-muggle-b8fb6ea53b93a75de84d8fc2e29495881c6527a7.tar.bz2
fix segfault in mgSelection::enter, fix order in collections
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/trunk@469 e10066b5-e1e2-0310-b819-94efdf66514b
-rw-r--r--muggle-plugin/mg_db.c2
-rw-r--r--muggle-plugin/mg_order.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/muggle-plugin/mg_db.c b/muggle-plugin/mg_db.c
index cba9baf..aa84ef4 100644
--- a/muggle-plugin/mg_db.c
+++ b/muggle-plugin/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/muggle-plugin/mg_order.c b/muggle-plugin/mg_order.c
index cc93141..93463b5 100644
--- a/muggle-plugin/mg_order.c
+++ b/muggle-plugin/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));