[bug_14808] Extration using bad indexes fixed.
[scilab.git] / scilab / modules / ast / src / cpp / types / arrayof.cpp
index 63d4bd0..ebe8e98 100644 (file)
@@ -999,8 +999,14 @@ GenericType* ArrayOf<T>::extract(typed_list* _pArgs)
         //index are ":"
         bool isForceColVector = il.size() == 4;
 
+        if (start < 1 || end < 1)
+        {
+            return NULL;
+        }
+
         //std::cout << start << ":" << step << ":" << end << std::endl;
         int size = static_cast<int>((end - start) / step + 1);
+
         if (size <= 0 || m_iSize == 0)
         {
             return createEmpty();
@@ -1675,7 +1681,7 @@ bool ArrayOf<T>::invoke(typed_list & in, optional_list & /*opt*/, int /*_iRetCou
         if (!_out)
         {
             std::wostringstream os;
-            os << _W("Invalid index.") << std::endl;
+            os << _W("Invalid index.\n");
             throw ast::InternalError(os.str(), 999, e.getLocation());
         }
         out.push_back(_out);