[SYSTEMML-561] Fix frame-matrix casting (robustness wrong input types)

Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/328b644c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/328b644c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/328b644c

Branch: refs/heads/master
Commit: 328b644cb22091dd7f0c3cb7e44766159fda1592
Parents: 6c89c3a
Author: Matthias Boehm <[email protected]>
Authored: Tue Apr 5 14:21:56 2016 -0700
Committer: Matthias Boehm <[email protected]>
Committed: Tue Apr 5 14:21:56 2016 -0700

----------------------------------------------------------------------
 .../runtime/instructions/cp/VariableCPInstruction.java  | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/328b644c/src/main/java/org/apache/sysml/runtime/instructions/cp/VariableCPInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/cp/VariableCPInstruction.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/cp/VariableCPInstruction.java
index 0bd3fad..da7a8a0 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/cp/VariableCPInstruction.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/cp/VariableCPInstruction.java
@@ -519,16 +519,16 @@ public class VariableCPInstruction extends CPInstruction
                        break;
                case CastAsMatrixVariable:{
                        MatrixBlock out = null;
-                       if( input1.getDataType()==DataType.SCALAR ) {
-                               ScalarObject scalarInput = 
ec.getScalarInput(input1.getName(), input1.getValueType(), input1.isLiteral());
-                               out = new MatrixBlock(1,1,false);
-                               out.quickSetValue(0, 0, 
scalarInput.getDoubleValue());  
-                       }
-                       else { //DataType.FRAME
+                       if( input1.getDataType()==DataType.FRAME ) {
                                FrameBlock fin = 
ec.getFrameInput(input1.getName());
                                out = DataConverter.convertToMatrixBlock(fin);
                                ec.releaseFrameInput(input1.getName());
                        }
+                       else { //assume DataType.SCALAR otherwise
+                               ScalarObject scalarInput = 
ec.getScalarInput(input1.getName(), input1.getValueType(), input1.isLiteral());
+                               out = new MatrixBlock(1,1,false);
+                               out.quickSetValue(0, 0, 
scalarInput.getDoubleValue());          
+                       }
                        ec.setMatrixOutput(output.getName(), out);
                        break;
                }

Reply via email to