@@ -41,17 +41,30 @@ read_function_call(Buffer, Codec, Service) ->
4141 type = Type ,
4242 seqid = SeqId },
4343 Buffer1 } when Type =:= ? tMessageType_CALL ; Type =:= ? tMessageType_ONEWAY ->
44- try erlang :binary_to_existing_atom (FName , latin1 ) of
45- Function -> read_function_params (Buffer1 , Codec , Service , Function , Type , SeqId )
46- catch
47- error :badarg -> {error , {bad_function_name , FName }}
48- end ;
44+ read_function_call (Buffer1 , Codec , Service , FName , Type , SeqId );
4945 {error , _ } = Error ->
5046 Error
5147 end .
5248
53- read_function_params (Buffer , Codec , Service , Function , IType , SeqId ) ->
54- InParams = get_function_info (Service , Function , params_type ),
49+ read_function_call (Buffer , Codec , Service , FName , IType , SeqId ) ->
50+ case get_function_params_info (Service , FName ) of
51+ {ok , Function , InParams } ->
52+ read_function_params (Buffer , Codec , Function , InParams , IType , SeqId );
53+ Error ->
54+ Error
55+ end .
56+
57+ get_function_params_info (Service , FName ) ->
58+ try
59+ Function = erlang :binary_to_existing_atom (FName , latin1 ),
60+ InParams = get_function_info (Service , Function , params_type ),
61+ {ok , Function , InParams }
62+ catch
63+ error :badarg ->
64+ {error , {bad_function_name , FName }}
65+ end .
66+
67+ read_function_params (Buffer , Codec , Function , InParams , IType , SeqId ) ->
5568 Type = case IType of
5669 ? tMessageType_CALL -> call ;
5770 ? tMessageType_ONEWAY -> oneway
0 commit comments