From 762db17e6e86c6ea3467522457a7ee9bd432058e Mon Sep 17 00:00:00 2001 From: Joe Shochet Date: Wed, 17 Jan 2007 06:07:56 +0000 Subject: [PATCH] more efficient task redefining --- direct/src/task/Task.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/direct/src/task/Task.py b/direct/src/task/Task.py index 2c1d5c9d89..fa8baff4b5 100644 --- a/direct/src/task/Task.py +++ b/direct/src/task/Task.py @@ -876,7 +876,6 @@ class TaskManager: self.running = 0 def __tryReplaceTaskMethod(self, task, oldMethod, newFunction): - import new if (task is None) or task.isRemoved(): return 0 method = task.__call__ @@ -889,6 +888,7 @@ class TaskManager: # 'oldMethod: ' + `oldMethod` + '\n' + # 'newFunction: ' + `newFunction` + '\n') if (function == oldMethod): + import new newMethod = new.instancemethod(newFunction, method.im_self, method.im_class) @@ -902,14 +902,17 @@ class TaskManager: # Look through the regular tasks for taskPriList in self.taskList: for task in taskPriList: - numFound += self.__tryReplaceTaskMethod(task, oldMethod, newFunction) + if task: + numFound += self.__tryReplaceTaskMethod(task, oldMethod, newFunction) # Look through the pending tasks for pri, taskList in self.pendingTaskDict.items(): for task in taskList: - numFound += self.__tryReplaceTaskMethod(task, oldMethod, newFunction) + if task: + numFound += self.__tryReplaceTaskMethod(task, oldMethod, newFunction) # Look through the doLaters for task in self.__doLaterList: - numFound += self.__tryReplaceTaskMethod(task, oldMethod, newFunction) + if task: + numFound += self.__tryReplaceTaskMethod(task, oldMethod, newFunction) return numFound def __repr__(self):