fix bug 1412 17/16117/2
Anais AUBERT [Mon, 9 Mar 2015 14:30:48 +0000 (15:30 +0100)]
Change-Id: I1b7f56a10388239ed0d9ee04743622f96f2e3cf0

scilab/modules/ast/src/cpp/types/polynom.cpp
scilab/modules/output_stream/tests/nonreg_tests/bug_1412.dia.ref
scilab/modules/output_stream/tests/nonreg_tests/bug_1412.tst

index 2f2f1b3..46c12b0 100644 (file)
@@ -30,6 +30,7 @@ Polynom::Polynom()
 
 Polynom::Polynom(wstring _szVarName, int _iRows, int _iCols)
 {
+
     int piDims[2]   = {_iRows, _iCols};
     createPoly(_szVarName, 2, piDims, NULL);
 }
@@ -82,6 +83,18 @@ void Polynom::createPoly(std::wstring _szVarName, int _iDims, int* _piDims, cons
 
 bool Polynom::set(int _iPos, SinglePoly* _pS)
 {
+    Polynom *pIn = new Polynom();
+    pIn->set(&_pS);
+    if ((getMaxRank() != 0) && (m_szVarName.c_str() != pIn->getVariableName().c_str()))
+    {
+        char szError[512];
+        os_sprintf(szError, _("Input arguments should have the same formal variable name.\n"));
+        wchar_t* pwstError = to_wide_string(szError);
+        std::wstring wstError(pwstError);
+        FREE(pwstError);
+
+        throw ast::ScilabError(wstError, 999, *new Location());
+    }
     bool bComplex = isComplex();
     if (m_pRealData == NULL || _iPos >= m_iSize)
     {
index dad38af..c3747d8 100644 (file)
@@ -14,4 +14,4 @@
 // and display a incorrect error
 A(3,3)=%s;
 ierr = execstr('A(:)=%z;','errcatch');
-if ierr <> 278 then bugmes();quit;end
+if ierr <> 999 then bugmes();quit;end
index d1c8538..68a6a65 100644 (file)
@@ -16,5 +16,5 @@
 // and display a incorrect error
 
 A(3,3)=%s;
-ierr = execstr('A(:)=%z;','errcatch');
-if ierr <> 278 then pause,end
\ No newline at end of file
+ierr = execstr("A(:)=%z;","errcatch");
+if ierr <> 999 then pause,end