OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2005 Frerich Raabe <raabe@kde.org> | 2 * Copyright (C) 2005 Frerich Raabe <raabe@kde.org> |
3 * Copyright (C) 2006, 2009 Apple Inc. | 3 * Copyright (C) 2006, 2009 Apple Inc. |
4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * | 9 * |
10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
700 return round(arg(0)->evaluate(context).toNumber()); | 700 return round(arg(0)->evaluate(context).toNumber()); |
701 } | 701 } |
702 | 702 |
703 struct FunctionMapping { | 703 struct FunctionMapping { |
704 const char* name; | 704 const char* name; |
705 FunctionRec function; | 705 FunctionRec function; |
706 }; | 706 }; |
707 | 707 |
708 static void createFunctionMap() | 708 static void createFunctionMap() |
709 { | 709 { |
710 static const FunctionMapping functions[] = { | 710 ASSERT(!functionMap); |
711 const FunctionMapping functions[] = { | |
711 { "boolean", { &createFunBoolean, 1 } }, | 712 { "boolean", { &createFunBoolean, 1 } }, |
712 { "ceiling", { &createFunCeiling, 1 } }, | 713 { "ceiling", { &createFunCeiling, 1 } }, |
713 { "concat", { &createFunConcat, Interval(2, Interval::Inf) } }, | 714 { "concat", { &createFunConcat, Interval(2, Interval::Inf) } }, |
714 { "contains", { &createFunContains, 2 } }, | 715 { "contains", { &createFunContains, 2 } }, |
715 { "count", { &createFunCount, 1 } }, | 716 { "count", { &createFunCount, 1 } }, |
716 { "false", { &createFunFalse, 0 } }, | 717 { "false", { &createFunFalse, 0 } }, |
717 { "floor", { &createFunFloor, 1 } }, | 718 { "floor", { &createFunFloor, 1 } }, |
718 { "id", { &createFunId, 1 } }, | 719 { "id", { &createFunId, 1 } }, |
719 { "lang", { &createFunLang, 1 } }, | 720 { "lang", { &createFunLang, 1 } }, |
720 { "last", { &createFunLast, 0 } }, | 721 { "last", { &createFunLast, 0 } }, |
(...skipping 23 matching lines...) Expand all Loading... | |
744 | 745 |
745 | 746 |
746 Function* createFunction(const String& name) | 747 Function* createFunction(const String& name) |
747 { | 748 { |
748 HeapVector<Member<Expression>> args; | 749 HeapVector<Member<Expression>> args; |
749 return createFunction(name, args); | 750 return createFunction(name, args); |
750 } | 751 } |
751 | 752 |
752 Function* createFunction(const String& name, HeapVector<Member<Expression>>& arg s) | 753 Function* createFunction(const String& name, HeapVector<Member<Expression>>& arg s) |
753 { | 754 { |
754 if (!functionMap) | 755 if (!functionMap) |
vivekg
2015/09/02 10:15:40
The check here makes sure the function |createFunc
| |
755 createFunctionMap(); | 756 createFunctionMap(); |
756 | 757 |
757 HashMap<String, FunctionRec>::iterator functionMapIter = functionMap->find(n ame); | 758 HashMap<String, FunctionRec>::iterator functionMapIter = functionMap->find(n ame); |
758 FunctionRec* functionRec = nullptr; | 759 FunctionRec* functionRec = nullptr; |
759 | 760 |
760 if (functionMapIter == functionMap->end() || !(functionRec = &functionMapIte r->value)->args.contains(args.size())) | 761 if (functionMapIter == functionMap->end() || !(functionRec = &functionMapIte r->value)->args.contains(args.size())) |
761 return nullptr; | 762 return nullptr; |
762 | 763 |
763 Function* function = functionRec->factoryFn(); | 764 Function* function = functionRec->factoryFn(); |
764 function->setArguments(args); | 765 function->setArguments(args); |
765 function->setName(name); | 766 function->setName(name); |
766 return function; | 767 return function; |
767 } | 768 } |
768 | 769 |
769 } | 770 } |
770 } | 771 } |
OLD | NEW |