[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