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

« back to all changes in this revision

Viewing changes to lib/ic/src/ictype.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:
1
1
%%
2
2
%% %CopyrightBegin%
3
3
%% 
4
 
%% Copyright Ericsson AB 1997-2009. All Rights Reserved.
 
4
%% Copyright Ericsson AB 1997-2010. All Rights Reserved.
5
5
%% 
6
6
%% The contents of this file are subject to the Erlang Public License,
7
7
%% Version 1.1, (the "License"); you may not use this file except in
407
407
    tktab_add(G, S, N, X, {tk_objref, ictk:get_IR_ID(G, N, X), ic_forms:get_id2(X)}),
408
408
    X;
409
409
 
 
410
check(G, S, N, #constr_forward{tk = tk_struct} = X) ->
 
411
    ?STDDBG,
 
412
    ID = ic_forms:get_id2(X),
 
413
    Module = list_to_atom(string:join(lists:reverse([ID|N]), "_")),
 
414
    tktab_add(G, S, N, X, {tk_struct, ictk:get_IR_ID(G, N, X), ID, Module}),
 
415
    X;
 
416
check(G, S, N, #constr_forward{tk = tk_union} = X) ->
 
417
    ?STDDBG,
 
418
    ID = ic_forms:get_id2(X),
 
419
    Module = list_to_atom(string:join(lists:reverse([ID|N]), "_")),
 
420
    tktab_add(G, S, N, X, {tk_union, ictk:get_IR_ID(G, N, X), ID, [], [], Module}),
 
421
    X;
410
422
 
411
423
check(G, S, N, X) when is_record(X, const) ->
412
424
    ?STDDBG,
427
439
            end
428
440
    end;
429
441
 
430
 
check(G, S, N, X) when is_record(X, const) ->
431
 
    ?STDDBG,
432
 
    case tk_base(G, S, N, ic_forms:get_type(X)) of
433
 
        Err when element(1, Err) == error -> X;
434
 
        TK ->
435
 
            check_const_tk(G, S, N, X, TK),
436
 
            case iceval:eval_const(G, S, N, TK, X#const.val) of
437
 
                Err when element(1, Err) == error -> X;
438
 
                Val ->
439
 
                    V = iceval:get_val(Val),
440
 
                    tktab_add(G, S, N, X, TK, V),
441
 
                    X#const{val=V, tk=TK}
442
 
            end
443
 
    end;
444
 
 
445
442
check(G, S, N, X) when is_record(X, except) ->
446
443
    ?STDDBG,
447
444
    TK = tk(G, S, N, X),
795
792
    Name = [Id | N],
796
793
    UName = mk_uppercase(Name),
797
794
    case ets:lookup(S, Name) of
798
 
        [{_, forward, _, _}] when is_record(X, interface) -> ok;
799
 
        [XX] when is_record(X, forward) andalso element(2, XX)==interface -> ok;
800
 
        [_] -> ic_error:error(G, {multiply_defined, X});
 
795
        [{_, forward, _, _}] when is_record(X, interface) ->
 
796
            ok;
 
797
        [{_, constr_forward, _, _}] when is_record(X, union) orelse 
 
798
                                         is_record(X, struct) -> 
 
799
            ok;
 
800
        [XX] when is_record(X, forward) andalso element(2, XX)==interface -> 
 
801
            ok;
 
802
        [_] -> 
 
803
            ic_error:error(G, {multiply_defined, X});
801
804
        [] ->
802
805
            case ets:lookup(S, UName) of
803
806
                [] -> ok;