MNode* MotorVector::pop () {
if (size () > 0) {
- MNode* ans = back () ();
+ MNodePtr ans;
+ ans = back () ();
pop_back ();
- return ans;
+ return ans.release ();
} else {
return NULL;
}
MNode* MotorVector::shift () {
size_t n = size ();
if (n > 0) {
- MNode* ans = get (0);
+ MNodePtr ans;
+ ans = get (0);
for (size_t i = 1; i < n; ++ i) {
put (i - 1, get (i));
}
pop ();
- return ans;
+ return ans.release ();
} else {
return NULL;
}