[Scummvm-cvs-logs] scummvm master -> a5748a34afe9ae837b14f26f69d6b3518ef91966

whoozle whoozle at yandex.ru
Fri Jun 24 07:37:38 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a5748a34af DREAMWEB: Fixed continuing to another procedure. (axe misuse crash)


Commit: a5748a34afe9ae837b14f26f69d6b3518ef91966
    https://github.com/scummvm/scummvm/commit/a5748a34afe9ae837b14f26f69d6b3518ef91966
Author: Vladimir Menshakov (whoozle at yandex.ru)
Date: 2011-06-23T22:34:23-07:00

Commit Message:
DREAMWEB: Fixed continuing to another procedure. (axe misuse crash)

Changed paths:
    devtools/tasmrecover/tasm/cpp.py
    engines/dreamweb/dreamgen.cpp



diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index 0196e5b..dfdfb23 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -466,7 +466,9 @@ namespace %s {
 						self.resolve_label(s.label)
 			
 			#adding statements
+			#BIG FIXME: this is quite ugly to handle code analysis from the code generation. rewrite me!
 			for label, proc, offset in self.unbounded:
+				self.body += "\treturn;\n" #we need to return before calling code from the other proc
 				self.body += "/*continuing to unbounded code: %s from %s:%d-%d*/\n" %(label, proc.name, offset, len(proc.stmts))
 				start = len(self.proc.stmts)
 				self.proc.add_label(label)
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index e92cd83..a5a4748 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -3482,6 +3482,7 @@ atlast4:
 	bx = pop();
 	es = pop();
 	data.byte(kLockstatus) = 1;
+	return;
 /*continuing to unbounded code: shutdoor from dodoor:60-87*/
 shutdoor:
 	cl = es.byte(bx+19);
@@ -6737,6 +6738,7 @@ doopeninv:
 	delpointer();
 	data.byte(kOpenedob) = 255;
 	goto waitexam;
+	return;
 /*continuing to unbounded code: examineagain from examineob:3-66*/
 examineagain:
 	data.byte(kInmaparea) = 0;
@@ -13187,6 +13189,7 @@ void DreamGenContext::useaxe() {
 	return;
 notinpool:
 	showfirstuse();
+	return;
 /*continuing to unbounded code: axeondoor from useelvdoor:19-30*/
 axeondoor:
 	al = 15;






More information about the Scummvm-git-logs mailing list