* Bug 14606 fixed: now `[names,mem]=who()` returns memory used by variables
[scilab.git] / scilab / modules / ast / src / cpp / types / macro.cpp
index 5e15652..bf81b6b 100644 (file)
@@ -456,6 +456,17 @@ int Macro::getNbOutputArgument(void)
     return (int)m_outputArgs->size();
 }
 
+bool Macro::getMemory(int* _piSize, int* _piSizePlusType)
+{
+    ast::SerializeVisitor serialMacro(m_body);
+    unsigned char* macroSerial = serialMacro.serialize(false, false);
+    unsigned int macroSize = *((unsigned int*)macroSerial);
+
+    *_piSize = macroSize;
+    *_piSizePlusType = *_piSize + sizeof(Macro);
+    return true;
+}
+
 bool Macro::operator==(const InternalType& it)
 {
     if (const_cast<InternalType &>(it).isMacro() == false)