]> source.dussan.org Git - tigervnc.git/commitdiff
Fixed the problem with crashes the player when it starts without
authorgeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Wed, 9 Feb 2005 13:04:32 +0000 (13:04 +0000)
committergeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Wed, 9 Feb 2005 13:04:32 +0000 (13:04 +0000)
command-line parameters.
Solved problem with buzzing program on some computers.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@159 3789f03b-4d11-0410-bbf8-ca57d06f2519

rfbplayer/RfbProto.cxx
rfbplayer/rfbplayer.cxx

index 8c151997c948e47ce38fa34cac80da5739e9d3df..add2096dc5eba10bc66ff44e2cd9014bde8b9c8d 100644 (file)
@@ -42,10 +42,10 @@ RfbProto::RfbProto(char *fileName) {
 //
 
 RfbProto::~RfbProto() {
-  delete is;
-  is = NULL;
-  delete reader;
-  reader = NULL;
+  if (is) delete is;
+  is = 0;
+  if (reader) delete reader;
+  reader = 0;
 }
 
 void RfbProto::newSession(char *fileName) {
index 5cddf85b80d895358c29f0335151c1c75d6f9fab..60c1c3be3e06fcb5f92a9c1d2a4e1f226401b01f 100644 (file)
@@ -237,7 +237,7 @@ RfbPlayer::RfbPlayer(char *_fileName, long _initTime = 0, double _playbackSpeed
   // Create the backing buffer
   buffer = new win32::DIBSectionBuffer(getFrameHandle());
   setVisible(true);
-    
+
   // Open the session file
   if (fileName) {
     openSessionFile(fileName);
@@ -257,8 +257,8 @@ RfbPlayer::~RfbPlayer() {
     DestroyWindow(mainHwnd);
     mainHwnd = 0;
   }
-  delete buffer;
-  delete cutText;
+  if (buffer) delete buffer;
+  if (cutText) delete [] cutText;
   vlog.debug("~RfbPlayer done"); 
 }
 
@@ -362,7 +362,7 @@ RfbPlayer::processMainMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
       }
       break;
     case ID_EXIT:
-      is->resumePlayback();
+      if (is) is->resumePlayback();
       PostQuitMessage(0);
       break;
     case ID_HELP_COMMANDLINESWITCHES:
@@ -472,7 +472,7 @@ LRESULT RfbPlayer::processFrameMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARA
 
   case WM_PAINT:
     {
-      if (is->isSeeking()) {
+      if (isSeeking()) {
         seekMode = true;
         return 0;
       } else {
@@ -926,7 +926,7 @@ void RfbPlayer::setPaused(bool paused) {
     CheckMenuItem(hMenu, ID_PLAYPAUSE, MF_CHECKED);
     CheckMenuItem(hMenu, ID_STOP, MF_UNCHECKED);
   } else {
-    is->resumePlayback();
+    if (is) is->resumePlayback();
     tb.checkButton(ID_PLAY, true);
     tb.checkButton(ID_STOP, false);
     tb.checkButton(ID_PAUSE, false);
@@ -937,7 +937,7 @@ void RfbPlayer::setPaused(bool paused) {
 
 void RfbPlayer::stopPlayback() {
   setPos(0);
-  is->pausePlayback();
+  if (is) is->pausePlayback();
   tb.checkButton(ID_STOP, true);
   tb.checkButton(ID_PLAY, false);
   tb.checkButton(ID_PAUSE, false);
@@ -965,7 +965,8 @@ long RfbPlayer::getSeekOffset() {
 }
 
 bool RfbPlayer::isSeeking() {
-  return is->isSeeking();
+  if (is) return is->isSeeking();
+  else return false;
 }
 
 bool RfbPlayer::isSeekMode() {
@@ -1019,7 +1020,7 @@ void programUsage() {
 double playbackSpeed = 1.0;
 long initTime = -1;
 bool autoplay = false;
-char *fileName;
+char *fileName = 0;
 bool print_usage = false;
 bool acceptBell = false;