* Bug 14606 fixed: now `[names,mem]=who()` returns memory used by variables
[scilab.git] / scilab / modules / ast / src / cpp / types / cell.cpp
index 1ee2d04..6c3317c 100644 (file)
@@ -27,6 +27,7 @@
 #include "core_math.h"
 #include "list.hxx"
 #include "configvariable.hxx"
+#include "types_tools.hxx"
 
 namespace types
 {
@@ -50,6 +51,24 @@ Cell::Cell(int _iDims, const int* _piDims, InternalType** data)
     createCell(_iDims, _piDims, data);
 }
 
+bool Cell::getMemory(int* _piSize, int* _piSizePlusType)
+{
+    *_piSize = 0;
+    *_piSizePlusType = 0;
+    InternalType** p = get();
+    for (int i = 0; i < getSize(); i++)
+    {
+        int piS, piSPT;
+        if (p[i]->getMemory(&piS, &piSPT))
+        {
+            *_piSize += piS;
+            *_piSizePlusType += piSPT;
+        }
+    }
+    *_piSizePlusType += sizeof(Cell);
+    return true;
+}
+
 void Cell::createCell(int _iDims, const int* _piDims, InternalType** data)
 {
     InternalType** pIT = NULL;