[Scummvm-cvs-logs] SF.net SVN: scummvm:[38656] scummvm/trunk/engines/sci

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sat Feb 21 04:32:14 CET 2009


Revision: 38656
          http://scummvm.svn.sourceforge.net/scummvm/?rev=38656&view=rev
Author:   fingolfin
Date:     2009-02-21 03:32:13 +0000 (Sat, 21 Feb 2009)

Log Message:
-----------
SCI: Fixed more warnings

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/said.cpp
    scummvm/trunk/engines/sci/engine/said.y
    scummvm/trunk/engines/sci/exereader.cpp

Modified: scummvm/trunk/engines/sci/engine/said.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/said.cpp	2009-02-21 03:25:23 UTC (rev 38655)
+++ scummvm/trunk/engines/sci/engine/said.cpp	2009-02-21 03:32:13 UTC (rev 38656)
@@ -189,7 +189,7 @@
 yylex(void);
 
 static int
-yyerror(char *s) {
+yyerror(const char *s) {
 	said_parse_error = sci_strdup(s);
 	return 1; /* Abort */
 }
@@ -1844,8 +1844,12 @@
 	return retval;
 }
 
-#define SAID_NEXT_NODE ((said_tree_pos == 0) || (said_tree_pos >= VOCAB_TREE_NODES)) ? said_tree_pos = 0 : said_tree_pos++
+static inline int said_next_node() {
+	return ((said_tree_pos == 0) || (said_tree_pos >= VOCAB_TREE_NODES)) ? said_tree_pos = 0 : said_tree_pos++;
+}
 
+#define SAID_NEXT_NODE said_next_node()
+
 static inline int said_leaf_node(tree_t pos, int value) {
 	said_tree[pos].type = PARSE_TREE_NODE_LEAF;
 

Modified: scummvm/trunk/engines/sci/engine/said.y
===================================================================
--- scummvm/trunk/engines/sci/engine/said.y	2009-02-21 03:25:23 UTC (rev 38655)
+++ scummvm/trunk/engines/sci/engine/said.y	2009-02-21 03:32:13 UTC (rev 38656)
@@ -92,7 +92,7 @@
 
 static int yylex(void);
 
-static int yyerror(char *s) {
+static int yyerror(const char *s) {
 	said_parse_error = sci_strdup(s);
 	return 1; /* Abort */
 }
@@ -258,8 +258,12 @@
 	return retval;
 }
 
-#define SAID_NEXT_NODE ((said_tree_pos == 0) || (said_tree_pos >= VOCAB_TREE_NODES)) ? said_tree_pos = 0 : said_tree_pos++
+static inline int said_next_node() {
+	return ((said_tree_pos == 0) || (said_tree_pos >= VOCAB_TREE_NODES)) ? said_tree_pos = 0 : said_tree_pos++;
+}
 
+#define SAID_NEXT_NODE said_next_node()
+
 static inline int said_leaf_node(tree_t pos, int value) {
 	said_tree[pos].type = PARSE_TREE_NODE_LEAF;
 
@@ -300,8 +304,16 @@
 static tree_t said_aug_branch(int n1, int n2, tree_t t1, tree_t t2) {
 	int retval;
 
-	retval = said_branch_node(SAID_NEXT_NODE, said_branch_node(SAID_NEXT_NODE, said_leaf_node(SAID_NEXT_NODE, n1),
-				said_branch_node(SAID_NEXT_NODE, said_leaf_node(SAID_NEXT_NODE, n2), t1)), t2);
+	// FIXME: The following code is ambiguous and *not* safely portable,
+	// due to the way the SAID_NEXT_NODE macro is implemented
+	retval = said_branch_node(SAID_NEXT_NODE,
+				said_branch_node(SAID_NEXT_NODE,
+					said_leaf_node(SAID_NEXT_NODE, n1),
+						said_branch_node(SAID_NEXT_NODE,
+							said_leaf_node(SAID_NEXT_NODE, n2),
+						t1)
+					),
+				t2);
 
 #ifdef SAID_DEBUG
 	fprintf(stderr, "AUG(0x%x, 0x%x, [%04x], [%04x]) = [%04x]\n", n1, n2, t1, t2, retval);

Modified: scummvm/trunk/engines/sci/exereader.cpp
===================================================================
--- scummvm/trunk/engines/sci/exereader.cpp	2009-02-21 03:25:23 UTC (rev 38655)
+++ scummvm/trunk/engines/sci/exereader.cpp	2009-02-21 03:32:13 UTC (rev 38656)
@@ -70,7 +70,8 @@
 
 	// Skip number of types in map
 	exeStream->skip(2);
-	uint16 val = exeStream->readUint16BE() + 1;
+//	uint16 val = exeStream->readUint16BE() + 1;
+	exeStream->skip(2);
 
 	// Keep reading till we find the "CODE" bit
 	while (!exeStream->eos()) {


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