Changeset 1161a61 in git for Singular/pyobject.cc


Ignore:
Timestamp:
Jun 21, 2012, 11:21:06 PM (11 years ago)
Author:
Alexander Dreyer <alexander.dreyer@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
Children:
7b156fb13a72b542c9e1172929270ebd7d365b14
Parents:
b2aa08657343fc20d230f035de4ac9ae5543a988
git-author:
Alexander Dreyer <alexander.dreyer@itwm.fraunhofer.de>2012-06-21 23:21:06+02:00
git-committer:
Alexander Dreyer <alexander.dreyer@itwm.fraunhofer.de>2012-08-01 23:07:44+02:00
Message:
fix: pyobject handles ternary operations acordingly
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/pyobject.cc

    rb2aa08 r1161a61  
    158158    switch(op)
    159159    {
    160       case ATTRIB_CMD: PyObject_SetAttr(*this, arg1, arg2); return self();
    161     }
    162     Werror("ternary operation %s not implemented for 'pyobject`", iiTwoOps(op));
     160      case ATTRIB_CMD:
     161        if(PyObject_SetAttr(*this, arg1, arg2) == -1) handle_exception();
     162        return self();
     163    }
    163164    return self(null_tag());
    164165  }
     
    227228  }
    228229
    229   void handle_exception() {
     230  void handle_exception() const {
    230231   
    231232    PyObject *pType, *pMessage, *pTraceback;
     
    557558  PythonCastDynamic rhs2(arg3);
    558559
    559   return lhs(op, rhs1, rhs2).assign_to(res);
     560  if (!lhs(op, rhs1, rhs2).assign_to(res))
     561    return blackboxDefaultOp3(op, res, arg1, arg2, arg3);
    560562}
    561563
Note: See TracChangeset for help on using the changeset viewer.