浏览代码

Throw error when extraArgs is not a list

rdb 17 年之前
父节点
当前提交
6786954cf8
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      direct/src/showbase/Messenger.py

+ 5 - 1
direct/src/showbase/Messenger.py

@@ -119,11 +119,15 @@ class Messenger:
                 "object: %s\n accepting: %s\n method: %s\n extraArgs: %s\n persistent: %s" %
                 "object: %s\n accepting: %s\n method: %s\n extraArgs: %s\n persistent: %s" %
                 (object, event, method, extraArgs, persistent))
                 (object, event, method, extraArgs, persistent))
 
 
-        # Make the the method is callable
+        # Make sure that the method is callable
         assert callable(method), (
         assert callable(method), (
             "method not callable in accept (ignoring): %s %s"%
             "method not callable in accept (ignoring): %s %s"%
             (method, extraArgs))
             (method, extraArgs))
 
 
+        # Make sure extraArgs is a list or tuple
+        if not (isinstance(extraArgs, list) or isinstance(extraArgs, tuple) or isinstance(extraArgs, set)):
+            raise TypeError, "A list is required as extraArgs argument"
+
         self.lock.acquire()
         self.lock.acquire()
         try:
         try:
             acceptorDict = self.__callbacks.setdefault(event, {})
             acceptorDict = self.__callbacks.setdefault(event, {})