[Scummvm-git-logs] scummvm master -> 4d9991668e044d5a001e8efcaf821d5f20c647c6

dreammaster paulfgilbert at gmail.com
Thu Apr 18 06:18:57 CEST 2019


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:
4d9991668e GLK: GLULXE: Compilation fixes by moving a bunch of macros to be actual methods


Commit: 4d9991668e044d5a001e8efcaf821d5f20c647c6
    https://github.com/scummvm/scummvm/commit/4d9991668e044d5a001e8efcaf821d5f20c647c6
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2019-04-17T21:18:46-07:00

Commit Message:
GLK: GLULXE: Compilation fixes by moving a bunch of macros to be actual methods

Changed paths:
    engines/glk/glulxe/funcs.cpp
    engines/glk/glulxe/glkop.cpp
    engines/glk/glulxe/glulxe.h


diff --git a/engines/glk/glulxe/funcs.cpp b/engines/glk/glulxe/funcs.cpp
index 4af5263..a6ed1a1 100644
--- a/engines/glk/glulxe/funcs.cpp
+++ b/engines/glk/glulxe/funcs.cpp
@@ -36,14 +36,14 @@ void Glulxe::enter_function(uint funcaddr, uint argc, uint *argv) {
 
 	accelFunc = accel_get_func(addr);
 	if (accelFunc) {
-		profile_in(addr, stackptr, TRUE);
+		profile_in(addr, stackptr, true);
 		val = (this->*accelFunc)(argc, argv);
 		profile_out(stackptr);
 		pop_callstub(val);
 		return;
 	}
 
-	profile_in(addr, stackptr, FALSE);
+	profile_in(addr, stackptr, false);
 
 	/* Check the Glulx type identifier byte. */
 	functype = Mem1(addr);
diff --git a/engines/glk/glulxe/glkop.cpp b/engines/glk/glulxe/glkop.cpp
index cb912ec..22031cc 100644
--- a/engines/glk/glulxe/glkop.cpp
+++ b/engines/glk/glulxe/glkop.cpp
@@ -65,43 +65,6 @@ namespace Glulxe {
      To work this code over for a new VM, just diddle the macros.
 */
 
-#define ReadMemory(addr)  \
-	(((addr) == 0xffffffff) \
-	 ? (stackptr -= 4, Stk4(stackptr)) \
-	 : (Mem4(addr)))
-#define WriteMemory(addr, val)  \
-	(((addr) == 0xffffffff) \
-	 ? (StkW4(stackptr, (val)), stackptr += 4) \
-	 : (MemW4((addr), (val))))
-#define CaptureCArray(addr, len, passin)  \
-	(grab_temp_c_array(addr, len, passin))
-#define ReleaseCArray(ptr, addr, len, passout)  \
-	(release_temp_c_array(ptr, addr, len, passout))
-#define CaptureIArray(addr, len, passin)  \
-	(grab_temp_i_array(addr, len, passin))
-#define ReleaseIArray(ptr, addr, len, passout)  \
-	(release_temp_i_array(ptr, addr, len, passout))
-#define CapturePtrArray(addr, len, objclass, passin)  \
-	(grab_temp_ptr_array(addr, len, objclass, passin))
-#define ReleasePtrArray(ptr, addr, len, objclass, passout)  \
-	(release_temp_ptr_array(ptr, addr, len, objclass, passout))
-#define ReadStructField(addr, fieldnum)  \
-	(((addr) == 0xffffffff) \
-	 ? (stackptr -= 4, Stk4(stackptr)) \
-	 : (Mem4((addr)+(fieldnum)*4)))
-#define WriteStructField(addr, fieldnum, val)  \
-	(((addr) == 0xffffffff) \
-	 ? (StkW4(stackptr, (val)), stackptr += 4) \
-	 : (MemW4((addr)+(fieldnum)*4, (val))))
-#define DecodeVMString(addr)  \
-	(make_temp_string(addr))
-#define ReleaseVMString(ptr)  \
-	(free_temp_string(ptr))
-#define DecodeVMUstring(addr)  \
-	(make_temp_ustring(addr))
-#define ReleaseVMUstring(ptr)  \
-	(free_temp_ustring(ptr))
-
 static gidispatch_rock_t classtable_register(void *obj, uint objclass) {
 	return g_vm->glulxe_classtable_register(obj, objclass);
 }
@@ -125,9 +88,6 @@ void Glulxe::glkopInit() {
 	classes = nullptr;
 }
 
-/* init_dispatch():
-   Set up the class hash tables and other startup-time stuff.
-*/
 bool Glulxe::init_dispatch() {
 	int ix;
 
@@ -1338,5 +1298,81 @@ char *Glulxe::get_game_id() {
 	return buf;
 }
 
+uint Glulxe::ReadMemory(uint addr) {
+	if (addr == 0xffffffff) {
+		stackptr -= 4;
+		return Stk4(stackptr);
+	} else {
+		return Mem4(addr);
+	}
+}
+
+void Glulxe::WriteMemory(uint addr, uint val) {
+	if (addr == 0xffffffff) {
+		StkW4(stackptr, (val));
+		stackptr += 4;
+	} else {
+		MemW4(addr, val);
+	}
+}
+
+char *Glulxe::CaptureCArray(uint addr, uint len, int passin) {
+	return grab_temp_c_array(addr, len, passin);
+}
+
+void Glulxe::ReleaseCArray(char *ptr, uint addr, uint len, int passout) {
+	release_temp_c_array(ptr, addr, len, passout);
+}
+
+uint *Glulxe::CaptureIArray(uint addr, uint len, int passin) {
+	return grab_temp_i_array(addr, len, passin);
+}
+
+void Glulxe::ReleaseIArray(uint *ptr, uint addr, uint len, int passout) {
+	release_temp_i_array(ptr, addr, len, passout);
+}
+
+void **Glulxe::CapturePtrArray(uint addr, uint len, int objclass, int passin) {
+	return grab_temp_ptr_array(addr, len, objclass, passin);
+}
+
+void Glulxe::ReleasePtrArray(void **ptr, uint addr, uint len, int objclass, int passout) {
+	return release_temp_ptr_array(ptr, addr, len, objclass, passout);
+}
+
+uint Glulxe::ReadStructField(uint addr, uint fieldnum) {
+	if (addr == 0xffffffff) {
+		stackptr -= 4;
+		return Stk4(stackptr);
+	} else {
+		return Mem4(addr + (fieldnum * 4));
+	}
+}
+
+void Glulxe::WriteStructField(uint addr, uint fieldnum, uint val) {
+	if (addr == 0xffffffff) {
+		StkW4(stackptr, val);
+		stackptr += 4;
+	} else {
+		MemW4(addr + (fieldnum * 4), val);
+	}
+}
+
+char *Glulxe::DecodeVMString(uint addr) {
+	return make_temp_string(addr);
+}
+
+void Glulxe::ReleaseVMString(char *ptr) {
+	free_temp_string(ptr);
+}
+
+uint *Glulxe::DecodeVMUstring(uint addr) {
+	return make_temp_ustring(addr);
+}
+
+void Glulxe::ReleaseVMUstring(uint *ptr) {
+	free_temp_ustring(ptr);
+}
+
 } // End of namespace Glulxe
 } // End of namespace Glk
diff --git a/engines/glk/glulxe/glulxe.h b/engines/glk/glulxe/glulxe.h
index b985beb..358563f 100644
--- a/engines/glk/glulxe/glulxe.h
+++ b/engines/glk/glulxe/glulxe.h
@@ -314,6 +314,21 @@ protected:
 	 */
 	char *get_game_id();
 
+	uint ReadMemory(uint addr);
+	void WriteMemory(uint addr, uint val);
+	char *CaptureCArray(uint addr, uint len, int passin);
+	void ReleaseCArray(char *ptr, uint addr, uint len, int passout);
+	uint *CaptureIArray(uint addr, uint len, int passin);
+	void ReleaseIArray(uint *ptr, uint addr, uint len, int passout);
+	void **CapturePtrArray(uint addr, uint len, int objclass, int passin);
+	void ReleasePtrArray(void **ptr, uint addr, uint len, int objclass, int passout);
+	uint ReadStructField(uint addr, uint fieldnum);
+	void WriteStructField(uint addr, uint fieldnum, uint val);
+	char *DecodeVMString(uint addr);
+	void ReleaseVMString(char *ptr);
+	uint *DecodeVMUstring(uint addr);
+	void ReleaseVMUstring(uint *ptr);
+
 	/**@}*/
 
 	/**
@@ -732,6 +747,9 @@ public:
 
 	void set_library_select_hook(void(*func)(uint));
 
+	/**
+	 * Set up the class hash tables and other startup-time stuff.
+	 */
 	bool init_dispatch();
 
 	/**
@@ -793,22 +811,23 @@ public:
 	void setup_profile(strid_t stream, char *filename);
 	int init_profile();
 	void profile_set_call_counts(int flag);
-#if VM_PROFILING
+
+	#if VM_PROFILING
 	uint profile_opcount;
-#define profile_tick() (profile_opcount++)
+	#define profile_tick() (profile_opcount++)
 	int profile_profiling_active();
 	void profile_in(uint addr, uint stackuse, int accel);
 	void profile_out(uint stackuse);
-	void profile_fail(char *reason);
+	void profile_fail(const char *reason);
 	void profile_quit();
-#else /* VM_PROFILING */
-#define profile_tick()         (0)
-#define profile_profiling_active()         (0)
-#define profile_in(addr, stackuse, accel)  (0)
-#define profile_out(stackuse)  (0)
-#define profile_fail(reason)   (0)
-#define profile_quit()         (0)
-#endif /* VM_PROFILING */
+	#else /* VM_PROFILING */
+	void profile_tick() {}
+	void profile_profiling_active() {}
+	void profile_in(uint addr, uint stackuse, int accel) {}
+	void profile_out(uint stackuse)  {}
+	void profile_fail(const char *reason) {}
+	void profile_quit() {}
+	#endif /* VM_PROFILING */
 
 #if VM_DEBUGGER
 	unsigned long debugger_opcount;





More information about the Scummvm-git-logs mailing list