[Scummvm-cvs-logs] SF.net SVN: scummvm:[40273] scummvm/trunk/engines/sci/engine/seg_manager. cpp
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Sun May 3 13:04:37 CEST 2009
Revision: 40273
http://scummvm.svn.sourceforge.net/scummvm/?rev=40273&view=rev
Author: fingolfin
Date: 2009-05-03 11:04:37 +0000 (Sun, 03 May 2009)
Log Message:
-----------
SCI: Got rid of the LIST_ALL_DEALLOCATABLE macro
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/seg_manager.cpp
Modified: scummvm/trunk/engines/sci/engine/seg_manager.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/seg_manager.cpp 2009-05-03 09:30:59 UTC (rev 40272)
+++ scummvm/trunk/engines/sci/engine/seg_manager.cpp 2009-05-03 11:04:37 UTC (rev 40273)
@@ -960,7 +960,7 @@
MemObject *memobj = allocNonscriptSegment(MEM_OBJ_STACK, segid);
dstack_t *retval = &(memobj->data.stack);
- retval->entries = (reg_t*)sci_calloc(size, sizeof(reg_t));
+ retval->entries = (reg_t *)sci_calloc(size, sizeof(reg_t));
retval->nr = size;
return retval;
@@ -1342,15 +1342,6 @@
}
-#define LIST_ALL_DEALLOCATABLE(kind, kind_field) \
- kind##Table * table = &(_mobj->data.kind_field); \
- int i; \
- \
- for (i = 0; i < table->max_entry; i++) \
- if (ENTRY_IS_VALID(table, i)) \
- (*note) (param, make_reg(_segId, i));
-
-
//-------------------- clones --------------------
class SegInterfaceClones : public SegInterface {
public:
@@ -1362,7 +1353,12 @@
};
void SegInterfaceClones::listAllDeallocatable(void *param, NoteCallback note) {
- LIST_ALL_DEALLOCATABLE(Clone, clones);
+ CloneTable *table = (CloneTable *)_mobj;
+ for (int i = 0; i < table->max_entry; i++)
+ if (ENTRY_IS_VALID(table, i))
+ (*note)(param, make_reg(_segId, i));
+
+
}
void SegInterfaceClones::listAllOutgoingReferences(EngineState *s, reg_t addr, void *param, NoteCallback note) {
@@ -1503,7 +1499,12 @@
}
void SegInterfaceLists::listAllDeallocatable(void *param, NoteCallback note) {
- LIST_ALL_DEALLOCATABLE(List, lists);
+ ListTable *table = (ListTable *)_mobj;
+ for (int i = 0; i < table->max_entry; i++)
+ if (ENTRY_IS_VALID(table, i))
+ (*note) (param, make_reg(_segId, i));
+
+
}
void SegInterfaceLists::listAllOutgoingReferences(EngineState *s, reg_t addr, void *param, NoteCallback note) {
@@ -1537,7 +1538,12 @@
}
void SegInterfaceNodes::listAllDeallocatable(void *param, NoteCallback note) {
- LIST_ALL_DEALLOCATABLE(Node, nodes);
+ NodeTable *table = (NodeTable *)_mobj;
+ for (int i = 0; i < table->max_entry; i++)
+ if (ENTRY_IS_VALID(table, i))
+ (*note) (param, make_reg(_segId, i));
+
+
}
void SegInterfaceNodes::listAllOutgoingReferences(EngineState *s, reg_t addr, void *param, NoteCallback note) {
@@ -1573,7 +1579,12 @@
}
void SegInterfaceHunk::listAllDeallocatable(void *param, NoteCallback note) {
- LIST_ALL_DEALLOCATABLE(Hunk, hunks);
+ HunkTable *table = (HunkTable *)_mobj;
+ for (int i = 0; i < table->max_entry; i++)
+ if (ENTRY_IS_VALID(table, i))
+ (*note) (param, make_reg(_segId, i));
+
+
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list