~ubuntu-branches/ubuntu/trusty/erlang/trusty

« back to all changes in this revision

Viewing changes to lib/orber/src/cdr_encode.erl

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2011-05-05 15:48:43 UTC
  • mfrom: (3.5.13 sid)
  • Revision ID: james.westby@ubuntu.com-20110505154843-0om6ekzg6m7ugj27
Tags: 1:14.b.2-dfsg-3ubuntu1
* Merge from debian unstable.  Remaining changes:
  - Drop libwxgtk2.8-dev build dependency. Wx isn't in main, and not
    supposed to.
  - Drop erlang-wx binary.
  - Drop erlang-wx dependency from -megaco, -common-test, and -reltool, they
    do not really need wx. Also drop it from -debugger; the GUI needs wx,
    but it apparently has CLI bits as well, and is also needed by -megaco,
    so let's keep the package for now.
  - debian/patches/series: Do what I meant, and enable build-options.patch
    instead.
* Additional changes:
  - Drop erlang-wx from -et
* Dropped Changes:
  - patches/pcre-crash.patch: CVE-2008-2371: outer level option with
    alternatives caused crash. (Applied Upstream)
  - fix for ssl certificate verification in newSSL: 
    ssl_cacertfile_fix.patch (Applied Upstream)
  - debian/patches/series: Enable native.patch again, to get stripped beam
    files and reduce the package size again. (build-options is what
    actually accomplished this)
  - Remove build-options.patch on advice from upstream and because it caused
    odd build failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
%%
3
3
%% %CopyrightBegin%
4
4
%% 
5
 
%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
 
5
%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
6
6
%% 
7
7
%% The contents of this file are subject to the Erlang Public License,
8
8
%% Version 1.1, (the "License"); you may not use this file except in
815
815
%%-----------------------------------------------------------------
816
816
%% Func: enc_union/5
817
817
%%-----------------------------------------------------------------
818
 
enc_union(Env, {_, Label, Value}, DiscrTC, Default, TypeCodeList, Bytes, Len) ->
 
818
enc_union(Env, {_, Label, Value}, DiscrTC, Default, TypeCodeList, 
 
819
          Bytes, Len) when is_list(TypeCodeList) ->
819
820
    {ByteSequence, Len1} = enc_type(DiscrTC, Env, Label, Bytes, Len),
820
821
    Label2 = stringify_enum(DiscrTC,Label),
821
822
    enc_union2(Env, {Label2, Value},TypeCodeList, Default, 
822
 
              ByteSequence, Len1, undefined).
 
823
               ByteSequence, Len1, undefined);
 
824
enc_union(Env, Value, _DiscrTC, _Default, Module, Bytes, Len) when is_atom(Module) ->
 
825
    case catch Module:tc() of
 
826
        {tk_union, _, _, DiscrTC, Default, ElementList} ->
 
827
            enc_union(Env, Value, DiscrTC, Default, ElementList, Bytes, Len);
 
828
        What ->
 
829
            orber:dbg("[~p] ~p:enc_union(~p). Union module doesn't exist or incorrect.", 
 
830
                      [?LINE, ?MODULE, What], ?DEBUG_LEVEL),
 
831
            corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE})
 
832
    end.  
823
833
 
824
834
enc_union2(_Env, _What, [], Default, Bytes, Len, _) when Default < 0 ->
825
835
    {Bytes, Len};
840
850
%%-----------------------------------------------------------------
841
851
%% Func: enc_struct/4
842
852
%%-----------------------------------------------------------------
843
 
enc_struct(Env, Struct, TypeCodeList, Bytes, Len) ->
 
853
enc_struct(Env, Struct, TypeCodeList, Bytes, Len) when is_list(TypeCodeList) ->
844
854
    [_Name | StructList] = tuple_to_list(Struct),
845
 
    enc_struct1(Env, StructList, TypeCodeList, Bytes, Len).
 
855
    enc_struct1(Env, StructList, TypeCodeList, Bytes, Len);
 
856
enc_struct(Env, Struct, Module, Bytes, Len) ->
 
857
    [Module | StructList] = tuple_to_list(Struct),
 
858
    case catch Module:tc() of
 
859
        {tk_struct, _, _, TypeCodeList} ->
 
860
            enc_struct1(Env, StructList, TypeCodeList, Bytes, Len);
 
861
        What ->
 
862
            orber:dbg("[~p] ~p:enc_struct([], ~p). Struct module doesn't exist or incorrect.", 
 
863
                      [?LINE, ?MODULE, What], ?DEBUG_LEVEL),
 
864
            corba:raise(#'MARSHAL'{completion_status=?COMPLETED_MAYBE})
 
865
    end.
846
866
 
847
867
enc_struct1(_Env, [], [], Bytes, Len) ->
848
868
    {Bytes, Len};