omxExpectation* omxNewIncompleteExpectation(SEXP rObj, int expNum, omxState* os) { SEXP ExpectationClass; const char *expType; {ScopedProtect p1(ExpectationClass, STRING_ELT(Rf_getAttrib(rObj, Rf_install("class")), 0)); expType = CHAR(ExpectationClass); } omxExpectation* expect = omxNewInternalExpectation(expType, os); expect->rObj = rObj; expect->expNum = expNum; SEXP nextMatrix; {ScopedProtect p1(nextMatrix, R_do_slot(rObj, Rf_install("data"))); expect->data = omxDataLookupFromState(nextMatrix, os); } return expect; }
omxExpectation* omxNewIncompleteExpectation(SEXP rObj, int expNum, omxState* os) { SEXP ExpectationClass; const char *expType; {ScopedProtect p1(ExpectationClass, STRING_ELT(Rf_getAttrib(rObj, R_ClassSymbol), 0)); expType = CHAR(ExpectationClass); } omxExpectation* expect = omxNewInternalExpectation(expType, os); expect->rObj = rObj; expect->expNum = expNum; ProtectedSEXP Rdata(R_do_slot(rObj, Rf_install("data"))); if (TYPEOF(Rdata) == INTSXP) { expect->data = omxDataLookupFromState(Rdata, os); } return expect; }