SCI: Slightly modified kAddAfter so that it does not modify its arguments needlessly

svn-id: r41174
This commit is contained in:
Max Horn 2009-06-04 20:51:24 +00:00
parent ae3c6c3053
commit f08f5c3bbf
2 changed files with 5 additions and 6 deletions

View file

@ -769,7 +769,7 @@ static int collides_with(EngineState *s, Common::Rect area, reg_t other_obj, int
return 0; return 0;
} }
reg_t kCanBeHere(EngineState *s, int funct_nr, int argc, reg_t * argv) { reg_t kCanBeHere(EngineState *s, int funct_nr, int argc, reg_t *argv) {
reg_t obj = argv[0]; reg_t obj = argv[0];
reg_t cliplist_ref = KP_ALT(1, NULL_REG); reg_t cliplist_ref = KP_ALT(1, NULL_REG);
List *cliplist = NULL; List *cliplist = NULL;

View file

@ -310,7 +310,7 @@ reg_t kAddToFront(EngineState *s, int funct_nr, int argc, reg_t *argv) {
} }
reg_t kAddAfter(EngineState *s, int funct_nr, int argc, reg_t *argv) { reg_t kAddAfter(EngineState *s, int funct_nr, int argc, reg_t *argv) {
List *l =lookup_list(s, argv[0]); List *l = lookup_list(s, argv[0]);
Node *firstnode = argv[1].isNull() ? NULL : lookup_node(s, argv[1]); Node *firstnode = argv[1].isNull() ? NULL : lookup_node(s, argv[1]);
Node *newnode = lookup_node(s, argv[2]); Node *newnode = lookup_node(s, argv[2]);
@ -341,12 +341,11 @@ reg_t kAddAfter(EngineState *s, int funct_nr, int argc, reg_t *argv) {
else else
lookup_node(s, oldnext)->pred = argv[2]; lookup_node(s, oldnext)->pred = argv[2];
return s->r_acc;
} else { // !firstnode } else { // !firstnode
// Prepare call to AddToFront... _k_add_to_front(s, argv[0], argv[2]); // Set as initial list node
argv[1] = argv[0];
return kAddToFront(s, funct_nr, 2, argv + 1); // Set as initial list node
} }
return s->r_acc;
} }
reg_t kAddToEnd(EngineState *s, int funct_nr, int argc, reg_t *argv) { reg_t kAddToEnd(EngineState *s, int funct_nr, int argc, reg_t *argv) {