Browse Source

Merge branch 'gb_tree' into module_trans

oxpa 9 years ago
parent
commit
4d417099d0
2 changed files with 4 additions and 1 deletions
  1. 2 1
      src/erlydtl_runtime.erl
  2. 2 0
      test/erlydtl_test_defs.erl

+ 2 - 1
src/erlydtl_runtime.erl

@@ -72,7 +72,8 @@ find_value(Key, L) when is_integer(Key), is_list(L) ->
     if Key =< length(L) -> lists:nth(Key, L);
     if Key =< length(L) -> lists:nth(Key, L);
        true -> undefined
        true -> undefined
     end;
     end;
-find_value(Key, {GBSize, GBData}) when is_integer(GBSize) ->
+find_value(_, {0, nil}) -> undefined;
+find_value(Key, {GBSize, {_, _, _, _}=GBData}) when is_integer(GBSize) ->
     case gb_trees:lookup(Key, {GBSize, GBData}) of
     case gb_trees:lookup(Key, {GBSize, GBData}) of
         {value, Val} ->
         {value, Val} ->
             Val;
             Val;

+ 2 - 0
test/erlydtl_test_defs.erl

@@ -137,6 +137,8 @@ all_test_defs() ->
         <<"{{ var1 }}">>, dict:store(var1, "bar", dict:new()), <<"bar">>},
         <<"{{ var1 }}">>, dict:store(var1, "bar", dict:new()), <<"bar">>},
        {"Render variable with missing attribute in dict",
        {"Render variable with missing attribute in dict",
         <<"{{ var1.foo }}">>, [{var1, dict:store(bar, "Othello", dict:new())}], <<"">>},
         <<"{{ var1.foo }}">>, [{var1, dict:store(bar, "Othello", dict:new())}], <<"">>},
+       {"Render variable in a two elements tuple",
+        <<"{{ var1.2 }}">>, [{var1,{12,[bar]}}], <<"bar">>},
        {"Render variable in gb_tree",
        {"Render variable in gb_tree",
         <<"{{ var1 }}">>, gb_trees:insert(var1, "bar", gb_trees:empty()), <<"bar">>},
         <<"{{ var1 }}">>, gb_trees:insert(var1, "bar", gb_trees:empty()), <<"bar">>},
        {"Render variable in arity-1 func",
        {"Render variable in arity-1 func",