comparison cbackend_c.rhope @ 159:d1e206ff75f9

Fix some bugs involving calling a worker object
author Mike Pavone <pavone@retrodev.com>
date Fri, 07 Jan 2011 03:17:20 -0500
parents 29b479a2ce48
children bac2c74801f0
comparison
equal deleted inserted replaced
158:0e06f29aa83d 159:d1e206ff75f9
846 }{ 846 }{
847 If[[name]=["Call"]] 847 If[[name]=["Call"]]
848 { 848 {
849 to call <- [args]Index[0] 849 to call <- [args]Index[0]
850 last numparams <- [func]Last NumParams >> 850 last numparams <- [func]Last NumParams >>
851 out <- [[[[[[func]Add Raw Line[[["if (get_blueprint("]Append[Make Op[Strip Addref[to call], func]]]Append[")->type_id == TYPE_WORKER) {"]] 851 out <- [[[[[[[func]Add Raw Line[[["if (get_blueprint("]Append[Make Op[Strip Addref[to call], func]]]Append[")->type_id == TYPE_WORKER) {"]]
852 ]Val Call[to call, Tail[args,1]] 852 ]Val Call[to call, Tail[args,1]]
853 ]Add Raw Line["} else {"] 853 ]Add Raw Line["} else {"]
854 ]Last NumParams <<[last numparams] 854 ]Last NumParams <<[last numparams]
855 ]Func Base["Call",args, "Call"] 855 ]Func Base["Call",args, "Call"]
856 ]Add Raw Line["}"] 856 ]Add Raw Line["}"]
857 ]Last NumParams <<[[Length[args]]-[1]]
857 }{ 858 }{
858 out <- [func]Func Base[Escape Rhope Name[name,[func]Escape Pattern >>],args, "Call"] 859 out <- [func]Func Base[Escape Rhope Name[name,[func]Escape Pattern >>],args, "Call"]
859 } 860 }
860 } 861 }
861 } 862 }