* Bug 14606 fixed: now `[names,mem]=who()` returns memory used by variables
[scilab.git] / scilab / modules / ast / src / cpp / types / types_tools.cpp
index 4c97db4..da34162 100644 (file)
@@ -26,6 +26,7 @@ extern "C"
 #include "elem_common.h"
 #include "os_string.h"
 #include "more.h"
+#include "sciprint.h"
 }
 
 namespace types
@@ -143,7 +144,7 @@ bool getArgsDims(typed_list* _pArgsIn, std::vector<int>& dims)
                 return false;
             }
 
-            int size = pIL->getSize();
+            int size = (int)pIL->getSize();
             if (size <= 0)
             {
                 return false;
@@ -155,11 +156,11 @@ bool getArgsDims(typed_list* _pArgsIn, std::vector<int>& dims)
             if (step > 0)
             {
                 double real_end = start + step * (size - 1);
-                dims.push_back(real_end);
+                dims.push_back((int)real_end);
             }
             else if (step < 0)
             {
-                dims.push_back(start);
+                dims.push_back((int)start);
             }
             else
             {
@@ -289,7 +290,7 @@ bool getScalarImplicitIndex(GenericType* _pRef, typed_list* _pArgsIn, std::vecto
         double step = evalute(pIL->getStep(), sizeRef);
         double end = evalute(pIL->getEnd(), sizeRef);
 
-        if ((start < 1 && step > 0) || (end < 1 & step < 0))
+        if (start < 1 && step > 0 || end < 1 && step < 0)
         {
             wchar_t szError[bsiz];
             os_swprintf(szError, bsiz, _W("Invalid index.\n").c_str());
@@ -377,7 +378,7 @@ bool getImplicitIndex(GenericType* _pRef, typed_list* _pArgsIn, std::vector<int>
                 double step = evalute(pIL->getStep(), sizeRef);
                 double end = evalute(pIL->getEnd(), sizeRef);
 
-                int size = (end - start) / step + 1;
+                int size = (int)((end - start) / step + 1);
                 if (size <= 0)
                 {
                     //manage implicit that return []
@@ -387,7 +388,7 @@ bool getImplicitIndex(GenericType* _pRef, typed_list* _pArgsIn, std::vector<int>
 
                 std::vector<int> idx(size);
 
-                if ((start < 1 && step > 0) || (end < 1 & step < 0))
+                if (start < 1 && step > 0 || end < 1 && step < 0)
                 {
                     wchar_t szError[bsiz];
                     os_swprintf(szError, bsiz, _W("Invalid index.\n").c_str());
@@ -617,7 +618,7 @@ int checkIndexesArguments(InternalType* _pRef, typed_list* _pArgsIn, typed_list*
                 double step = getIndex(pIL->getStep());
                 double end = getIndex(pIL->getEnd());
 
-                pCurrentArg = ((start < 1 && step > 0) || (end < 1 & step < 0)) ? NULL : pIL->extractFullMatrix()->getAs<Double>();
+                pCurrentArg = (start < 1 && step > 0 || end < 1 && step < 0) ? NULL : pIL->extractFullMatrix()->getAs<Double>();
             }
 
             pIL->killMe();