summaryrefslogtreecommitdiff
path: root/modules/gdscript
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2016-03-01 19:05:00 +0100
committerRémi Verschelde <remi@verschelde.fr>2016-03-01 19:05:00 +0100
commitd0c95ec19136fe60af17ce46ab0d9fa076c480f8 (patch)
treef1423d79df9873e7601d1c765310d961f9173f60 /modules/gdscript
parent46bfcd350745d3053a0cab2985d73baae0a4a88d (diff)
parent002ff3cc9a6479695034b556f15ef4d9fa4bc6fe (diff)
Merge pull request #3894 from akien-mga/pr-revert-3814
Revert "Merge pull request #3814 from est31/iterators_for_for"
Diffstat (limited to 'modules/gdscript')
-rw-r--r--modules/gdscript/gd_functions.cpp83
-rw-r--r--modules/gdscript/gd_functions.h1
-rw-r--r--modules/gdscript/gd_parser.cpp14
3 files changed, 0 insertions, 98 deletions
diff --git a/modules/gdscript/gd_functions.cpp b/modules/gdscript/gd_functions.cpp
index e5689d8865..9b7d8eeac4 100644
--- a/modules/gdscript/gd_functions.cpp
+++ b/modules/gdscript/gd_functions.cpp
@@ -32,7 +32,6 @@
#include "reference.h"
#include "gd_script.h"
#include "func_ref.h"
-#include "range_iterator.h"
#include "os/os.h"
#include "variant_parser.h"
#include "io/marshalls.h"
@@ -99,7 +98,6 @@ const char *GDFunctions::get_func_name(Function p_func) {
"var2bytes",
"bytes2var",
"range",
- "xrange",
"load",
"inst2dict",
"dict2inst",
@@ -818,81 +816,6 @@ void GDFunctions::call(Function p_func,const Variant **p_args,int p_arg_count,Va
}
} break;
- case GEN_XRANGE: {
-
- switch(p_arg_count) {
- case 0: {
- r_error.error=Variant::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS;
- r_error.argument=1;
- } break;
- case 1: {
-
- VALIDATE_ARG_NUM(0);
-
- int count=*p_args[0];
-
- Ref<RangeIterator> itr = Ref<RangeIterator>( memnew(RangeIterator) );
- if (!*itr) {
- ERR_EXPLAIN("Couldn't allocate iterator!");
- r_error.error=Variant::CallError::CALL_ERROR_INVALID_METHOD;
- ERR_FAIL();
- }
- (*itr)->set_range(count);
- r_ret=Variant(itr);
- return;
- } break;
- case 2: {
-
- VALIDATE_ARG_NUM(0);
- VALIDATE_ARG_NUM(1);
-
- int from=*p_args[0];
- int to=*p_args[1];
-
- Ref<RangeIterator> itr = Ref<RangeIterator>( memnew(RangeIterator) );
- if (!*itr) {
- ERR_EXPLAIN("Couldn't allocate iterator!");
- r_error.error=Variant::CallError::CALL_ERROR_INVALID_METHOD;
- ERR_FAIL();
- }
- (*itr)->set_range(from, to);
- r_ret=Variant(itr);
- return;
- } break;
- case 3: {
-
- VALIDATE_ARG_NUM(0);
- VALIDATE_ARG_NUM(1);
- VALIDATE_ARG_NUM(2);
-
- int from=*p_args[0];
- int to=*p_args[1];
- int incr=*p_args[2];
-
- if (incr==0) {
- ERR_EXPLAIN("step argument is zero!");
- r_error.error=Variant::CallError::CALL_ERROR_INVALID_METHOD;
- ERR_FAIL();
- }
-
- Ref<RangeIterator> itr = Ref<RangeIterator>( memnew(RangeIterator) );
- if (!*itr) {
- ERR_EXPLAIN("Couldn't allocate iterator!");
- r_error.error=Variant::CallError::CALL_ERROR_INVALID_METHOD;
- ERR_FAIL();
- }
- (*itr)->set_range(from, to, incr);
- r_ret=Variant(itr);
- return;
- } break;
- default: {
-
- r_error.error=Variant::CallError::CALL_ERROR_TOO_MANY_ARGUMENTS;
- r_error.argument=3;
- } break;
- }
-
- } break;
case RESOURCE_LOAD: {
VALIDATE_ARG_COUNT(1);
if (p_args[0]->get_type()!=Variant::STRING) {
@@ -1510,12 +1433,6 @@ MethodInfo GDFunctions::get_info(Function p_func) {
mi.return_val.type=Variant::ARRAY;
return mi;
} break;
- case GEN_XRANGE: {
-
- MethodInfo mi("xrange",PropertyInfo(Variant::NIL,"..."));
- mi.return_val.type=Variant::OBJECT;
- return mi;
- } break;
case RESOURCE_LOAD: {
MethodInfo mi("load",PropertyInfo(Variant::STRING,"path"));
diff --git a/modules/gdscript/gd_functions.h b/modules/gdscript/gd_functions.h
index 3a993cc038..8c88472567 100644
--- a/modules/gdscript/gd_functions.h
+++ b/modules/gdscript/gd_functions.h
@@ -92,7 +92,6 @@ public:
VAR_TO_BYTES,
BYTES_TO_VAR,
GEN_RANGE,
- GEN_XRANGE,
RESOURCE_LOAD,
INST2DICT,
DICT2INST,
diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp
index 4b0164d8a2..4f572b7b6e 100644
--- a/modules/gdscript/gd_parser.cpp
+++ b/modules/gdscript/gd_parser.cpp
@@ -1779,20 +1779,6 @@ void GDParser::_parse_block(BlockNode *p_block,bool p_static) {
return;
}
- // Little optimisation for common usage "for i in range(...):":
- // don't create and initialize a possibly huge array as range()
- // would do, but instead create an iterator using xrange()
- if (container->type == Node::TYPE_OPERATOR) {
- OperatorNode *op = static_cast<OperatorNode *>(container);
- if (op->arguments.size() > 0 &&
- op->arguments[0]->type == Node::TYPE_BUILT_IN_FUNCTION) {
- BuiltInFunctionNode *c = static_cast<BuiltInFunctionNode *>(op->arguments[0]);
- if (c->function == GDFunctions::GEN_RANGE) {
- c->function = GDFunctions::GEN_XRANGE;
- }
- }
- }
-
ControlFlowNode *cf_for = alloc_node<ControlFlowNode>();
cf_for->cf_type=ControlFlowNode::CF_FOR;