[IronPython] The bug about Tuple

Michael Tan fantasysoft at hotmail.com
Thu Jan 5 16:23:27 CET 2006


Dear All,
    I find these codes that run OK in IP 0.96 throw exception in IP 1.0. 
Here are the codes:
    >>> def A(*args):
    ...     print args
    
    >>> def B(*args):
    ...     A(*args)
   
    B(1,2,3)
System.NullReferenceException: Object reference not set to an instance of 
an object.
   at IronPython.Runtime.Frame.TryGetLocal(String name, Object& ret) in 
F:\IronPython-1.0-Beta1\Src\
IronPython\Runtime\Frame.cs:line 67
   at IronPython.Runtime.Frame.GetGlobal(String name) in 
F:\IronPython-1.0-Beta1\Src\IronPython\Runt
ime\Frame.cs:line 90
   at moduleHolder_1.B$f1(Object args)
   at moduleHolder_1.B$f1(Object[] )
   at IronPython.Runtime.FunctionX.Call(Object[] args) in 
F:\IronPython-1.0-Beta1\Src\IronPython\Run
time\Function.cs:line 968
   at IronPython.Runtime.FunctionN.Call(Object arg0, Object arg1, Object 
arg2) in F:\IronPython-1.0-
Beta1\Src\IronPython\Runtime\Function.cs:line 849
   at IronPython.Runtime.Ops.CallWithContext(ICallerContext context, Object 
func, Object arg0, Objec
t arg1, Object arg2) in 
F:\IronPython-1.0-Beta1\Src\IronPython\Runtime\Ops.cs:line 2055
   at input##0(Frame )
   at IronPython.Runtime.FrameCodeDelegate.Invoke(Frame frame)
   at IronPython.Runtime.FrameCode.Run(Frame frame) in 
F:\IronPython-1.0-Beta1\Src\IronPython\Runtim
e\Frame.cs:line 165
   at IronPython.Hosting.PythonEngine.DoOneInteractive(Frame topFrame) in 
F:\IronPython-1.0-Beta1\Sr
c\IronPython\Hosting\PythonEngine.cs:line 333
   at IronPython.Hosting.PythonEngine.RunInteractive() in 
F:\IronPython-1.0-Beta1\Src\IronPython\Hos
ting\PythonEngine.cs:line 272
Exception: Object reference not set to an instance of an object.

      When I debug this error, I also find the f_locals in Frame.cs is the 
key point. When the global function with name B is retrieved, the f_locals 
is fine. And the workflow continues, the global function with name A should 
be fetched, but this time f_locals is null!  I don't know what reset the 
f_locals variable, but I guess the Tuple.cs may be the criminal.

     Regards,
     Michael





More information about the Ironpython-users mailing list