From 3c191ee1d6c92c087a816f0832953a65b8ac1488 Mon Sep 17 00:00:00 2001 From: Mikhail Khodjaiants Date: Mon, 10 Nov 2003 18:06:48 +0000 Subject: [PATCH] Fix for PR 46358: NPE in the "setCurrentThread" method of "CDebugTarget". --- debug/org.eclipse.cdt.debug.core/ChangeLog | 5 +++++ .../cdt/debug/internal/core/model/CDebugTarget.java | 7 +++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index c8fa26bc204..ff578d69b5a 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,8 @@ +2003-11-07 Mikhail Khodjaiants + Fix for PR 46358: NPE in the "setCurrentThread" method of "CDebugTarget". + 'setCurrentThread': check if the old current thread is not null. + * CDebugTarget.java + 2003-11-07 Mikhail Khodjaiants Use the corresponding methods of 'ICBreakpoint' to set breakpoint properties. * CBreakpointManager.java diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java index fe96399fd28..017db08b048 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CDebugTarget.java @@ -1788,15 +1788,14 @@ public class CDebugTarget extends CDebugElement public void setCurrentThread( IThread thread ) throws DebugException { if ( !isSuspended() || !isAvailable() || thread == null || !(thread instanceof CThread) ) - { return; - } try { CThread oldThread = (CThread)getCurrentThread(); - if ( !oldThread.equals( thread ) ) + if ( !thread.equals( oldThread ) ) { - oldThread.setCurrent( false ); + if ( oldThread != null ) + oldThread.setCurrent( false ); getCDITarget().setCurrentThread( ((CThread)thread).getCDIThread() ); ((CThread)thread).setCurrent( true ); }