From 5351d31c64b4d97d390a287719246780dcf45f6a Mon Sep 17 00:00:00 2001 From: Dave Schuyler Date: Tue, 28 Jun 2005 03:02:29 +0000 Subject: [PATCH] checking that the method passed in is callable --- direct/src/showbase/Messenger.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/direct/src/showbase/Messenger.py b/direct/src/showbase/Messenger.py index e4459b8fac..8cf1b134f5 100644 --- a/direct/src/showbase/Messenger.py +++ b/direct/src/showbase/Messenger.py @@ -54,6 +54,11 @@ class Messenger: + '\n method: ' + `method` + '\n extraArgs: ' + `extraArgs` + '\n persistent: ' + `persistent`) + if not callable(method): + self.notify.warning( + "method not callable in accept (ignoring): %s %s"% + (method, extraArgs)) + return acceptorDict = self.__callbacks.setdefault(event, {}) acceptorDict[object] = [method, extraArgs, persistent] @@ -195,7 +200,12 @@ class Messenger: # we have cleaned up the accept hook, because the # method itself might call accept() or acceptOnce() # again. - apply(method, (extraArgs + sentArgs)) + if callable(method): + apply(method, (extraArgs + sentArgs)) + else: + self.notify.warning( + "method not callable in send: %s %s %s"% + (method, extraArgs, sentArgs)) def clear(self): """