[SCM] guayadeque/master: Fix random crashed in Google cover search engine (LP: #645029).

alessio at users.alioth.debian.org alessio at users.alioth.debian.org
Wed Sep 22 09:37:44 UTC 2010


The following commit has been merged in the master branch:
commit 41ccc912d281deecde671012d419157411e8d3af
Author: Alessio Treglia <alessio at debian.org>
Date:   Wed Sep 22 11:34:50 2010 +0200

    Fix random crashed in Google cover search engine (LP: #645029).

diff --git a/debian/patches/02-google_cover_search_engine_crash.patch b/debian/patches/02-google_cover_search_engine_crash.patch
new file mode 100644
index 0000000..8f60dc0
--- /dev/null
+++ b/debian/patches/02-google_cover_search_engine_crash.patch
@@ -0,0 +1,121 @@
+Description: Fix some random crash in google cover search engine.
+Origin: http://bazaar.launchpad.net/~anonbeat/guayadeque.player/trunk/revision/1263
+Applied-Upstream: commit:1263
+Bug-Ubuntu: https://launchpad.net/bugs/645029
+---
+ src/Db.cpp        |    2 +-
+ src/DbLibrary.cpp |   12 ++++++++----
+ src/Google.cpp    |   30 ++++++++++++++++--------------
+ src/Utils.cpp     |    8 --------
+ 4 files changed, 25 insertions(+), 27 deletions(-)
+
+--- guayadeque.orig/src/Db.cpp
++++ guayadeque/src/Db.cpp
+@@ -149,7 +149,7 @@ int guDb::ExecuteUpdate( const wxSQLite3
+ void guDb::SetInitParams( void )
+ {
+   wxString query;
+-  query = wxT( "PRAGMA legacy_file_format=false; PRAGMA page_size=8192; PRAGMA cache_size=4096; PRAGMA count_changes=1; PRAGMA synchronous='OFF'; PRAGMA short_column_names=0; PRAGMA full_column_names=0;" );
++  query = wxT( "PRAGMA legacy_file_format=false; PRAGMA page_size=4096; PRAGMA cache_size=4096; PRAGMA count_changes=1; PRAGMA synchronous='OFF'; PRAGMA short_column_names=0; PRAGMA full_column_names=0;" );
+   //query = wxT( "PRAGMA page_size=10240; PRAGMA cache_size=65536; PRAGMA count_changes=1; PRAGMA synchronous='OFF'; PRAGMA short_column_names=0; PRAGMA full_column_names=0;" );
+   ExecuteUpdate( query );
+ }
+--- guayadeque.orig/src/DbLibrary.cpp
++++ guayadeque/src/DbLibrary.cpp
+@@ -1517,6 +1517,8 @@ int guDbLibrary::GetPathId( wxString &Pa
+       return LastPathId;
+   }
+ 
++  int RetVal = 0;
++
+ //TODO Add a Lock
+   wxString query;
+   wxSQLite3ResultSet dbRes;
+@@ -1533,22 +1535,24 @@ int guDbLibrary::GetPathId( wxString &Pa
+ 
+   if( dbRes.NextRow() )
+   {
+-    return LastPathId = dbRes.GetInt( 0 );
++    RetVal = LastPathId = dbRes.GetInt( 0 );
+   }
+   else
+   {
++    dbRes.Finalize();
+     query = wxT( "SELECT MAX(song_pathid) FROM songs;" );
+     dbRes = ExecuteQuery( query );
+     if( dbRes.NextRow() )
+     {
+-        return LastPathId = dbRes.GetInt( 0 ) + 1;
++        RetVal = LastPathId = dbRes.GetInt( 0 ) + 1;
+     }
+     else
+     {
+-        return LastPathId = 1;
++        RetVal = LastPathId = 1;
+     }
+   }
+-  return 0;
++  dbRes.Finalize();
++  return RetVal;
+ }
+ 
+ // -------------------------------------------------------------------------------- //
+--- guayadeque.orig/src/Google.cpp
++++ guayadeque/src/Google.cpp
+@@ -119,23 +119,25 @@ int guGoogleCoverFetcher::ExtractImagesI
+         //guLogMessage( wxT( "%s" ), Content.Mid( 0, StrPos ).c_str() );
+         wxHtmlEntitiesParser EntitiesParser;
+         GoogleImage = ExtractImageInfo( EntitiesParser.Parse( content.Mid( 0, StrPos ) ) );
+-        //RetVal.Add( CurImage );
+-        CurImage.Empty();
+-        if( GoogleImage[ GOOGLE_COVERINFO_LINK ].IsEmpty() )
++        if( GoogleImage.Count() >= GOOGLE_COVERINFO_SIZE )
+         {
+-            GoogleImage[ GOOGLE_COVERINFO_LINK ] = ExtractCoverFromGoogleLink( GoogleImage[ 0 ] );
+-        }
++            //RetVal.Add( CurImage );
++            CurImage.Empty();
++            if( GoogleImage[ GOOGLE_COVERINFO_LINK ].IsEmpty() )
++            {
++                GoogleImage[ GOOGLE_COVERINFO_LINK ] = ExtractCoverFromGoogleLink( GoogleImage[ 0 ] );
++            }
+ 
+-        if( !GoogleImage[ GOOGLE_COVERINFO_LINK ].IsEmpty() )
+-        {
+-            CurImage.Add( GoogleImage[ GOOGLE_COVERINFO_LINK ] );
+-            CurImage.Add( GoogleImage[ GOOGLE_COVERINFO_SIZE ] );
+-            m_CoverLinks->Add( CurImage );
+-            ImageIndex++;
+-            if( ImageIndex == count )
+-                break;
++            if( !GoogleImage[ GOOGLE_COVERINFO_LINK ].IsEmpty() )
++            {
++                CurImage.Add( GoogleImage[ GOOGLE_COVERINFO_LINK ] );
++                CurImage.Add( GoogleImage[ GOOGLE_COVERINFO_SIZE ] );
++                m_CoverLinks->Add( CurImage );
++                ImageIndex++;
++                if( ImageIndex == count )
++                    break;
++            }
+         }
+-
+         //guLogMessage( wxT( "Pos: %u" ), StrPos );
+     }
+     return ImageIndex;
+--- guayadeque.orig/src/Utils.cpp
++++ guayadeque/src/Utils.cpp
+@@ -202,14 +202,6 @@ wxImage * guGetRemoteImage( const wxStri
+                 }
+             }
+ 
+-            if( ResCode != 200 )
+-            {
+-                guLogMessage( wxT( "Error %u getting remote image '%s'\n%s" ),
+-                    http.GetResponseCode(),
+-                    url.c_str(),
+-                    http.GetResponseHeader().c_str() );
+-            }
+-
+             if( Buffer.IsOk() )
+             {
+                 wxMemoryInputStream Ins( Buffer );
diff --git a/debian/patches/series b/debian/patches/series
index 25bbf55..48e4516 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
 01-desktop_file.patch
+02-google_cover_search_engine_crash.patch

-- 
guayadeque packaging



More information about the pkg-multimedia-commits mailing list