[Vm-dev] [commit][3626] Eliminate the casts on assigning the dispatch struct in sqManualSurface.c

commits at squeakvm.org commits at squeakvm.org
Mon Feb 22 18:51:27 UTC 2016


Revision: 3626
Author:   eliot
Date:     2016-02-22 10:51:24 -0800 (Mon, 22 Feb 2016)
Log Message:
-----------
Eliminate the casts on assigning the dispatch struct in sqManualSurface.c

Modified Paths:
--------------
    trunk/platforms/Cross/plugins/SqueakFFIPrims/sqManualSurface.c
    trunk/platforms/Cross/plugins/SurfacePlugin/SurfacePlugin.h

Property Changed:
----------------
    trunk/platforms/Cross/plugins/sqPluginsSCCSVersion.h

Modified: trunk/platforms/Cross/plugins/SqueakFFIPrims/sqManualSurface.c
===================================================================
--- trunk/platforms/Cross/plugins/SqueakFFIPrims/sqManualSurface.c	2016-02-21 04:56:31 UTC (rev 3625)
+++ trunk/platforms/Cross/plugins/SqueakFFIPrims/sqManualSurface.c	2016-02-22 18:51:24 UTC (rev 3626)
@@ -53,22 +53,23 @@
 
 /* Create the dispatch-table that SurfacePlugin will use to interact with
    instances of "struct ManualSurface" */
-static long manualSurfaceGetFormat(ManualSurface* surface, long* width, long* height, long* depth, long* isMSB);
-static void* manualSurfaceLock(ManualSurface* surface, long *pitch, long x, long y, long w, long h);
-static long manualSurfaceUnlock(ManualSurface* surface, long x, long y, long w, long h);
-static long manualSurfaceShow(ManualSurface* surface, long x, long y, long w, long h);
+static long manualSurfaceGetFormat(void *, long*, long*, long*, long*);
+static long manualSurfaceLock(void *, long *, long, long, long, long);
+static long manualSurfaceUnlock(void *, long, long, long, long);
+static long manualSurfaceShow(void *, long, long, long, long);
 static sqSurfaceDispatch manualSurfaceDispatch = {
   1,
   0,
-  (fn_getSurfaceFormat) manualSurfaceGetFormat,
-  (fn_lockSurface) manualSurfaceLock,
-  (fn_unlockSurface) manualSurfaceUnlock,
-  (fn_showSurface) manualSurfaceShow
+  manualSurfaceGetFormat,
+  manualSurfaceLock,
+  manualSurfaceUnlock,
+  manualSurfaceShow
 };
 
 /* sqSurfaceDispatch functions *****************************************************************************/
 
-long manualSurfaceGetFormat(ManualSurface* surface, long* width, long* height, long* depth, long* isMSB) {
+long manualSurfaceGetFormat(void *surfaceArg, long* width, long* height, long* depth, long* isMSB) {
+	ManualSurface* surface = surfaceArg;
 	*width = surface->width;
 	*height = surface->height;
 	*depth = surface->depth;
@@ -77,34 +78,36 @@
 	return 1;
 }
 
-void* manualSurfaceLock(ManualSurface* surface, long *pitch, long x, long y, long w, long h) {
+long manualSurfaceLock(void *surfaceArg, long *pitch, long x, long y, long w, long h) {
+	ManualSurface* surface = surfaceArg;
 	/* Ideally, would be atomic.  But it doens't matter for the forseeable future,
 	   since it is only called via BitBlt primitives. */
 	int wasLocked = surface->isLocked;
 	surface->isLocked = 1; 
 	
 	/* Can't lock if it was already locked. */
-	if (wasLocked) return NULL;
+	if (wasLocked) return 0;
 	
 	/* If there is no pointer, the lock-attempt fails. */
 	if (!surface->ptr) {
 		surface->isLocked = 0;
-		return NULL;
+		return 0;
 	}
 	
 	/* Success!  Return the pointer. */
 	*pitch = surface->rowPitch;
 	DPRINTF(("Locked Surface: %lx Input Rect: %ld %ld %ld %ld  Row Pitch: %ld\n", (long) surface, x, y, w, h, *pitch));
-	return surface->ptr;
+	return (long)(surface->ptr);
 }
 
-long manualSurfaceUnlock(ManualSurface* surface, long x, long y, long w, long h) {
+long manualSurfaceUnlock(void *surfaceArg, long x, long y, long w, long h) {
+	ManualSurface* surface = surfaceArg;
     surface->isLocked = 0;
 	DPRINTF(("Unlocked Surface: %lx Rect: %ld %ld %ld %ld\n", (long) surface, x, y, w, h));
 	return 1;	
 }
 
-long manualSurfaceShow(ManualSurface* surface, long x, long y, long w, long h) {
+long manualSurfaceShow(void *surfaceArg, long x, long y, long w, long h) {
 	/* Unsupported */
 	return 0;
 }
@@ -143,7 +146,7 @@
 
 long destroyManualSurface(long surfaceID) {
 	if (!unregisterSurface) return 0; /* failure... couldn't init function-pointer */
-	else return unregisterSurface(surfaceID);
+	return unregisterSurface(surfaceID);
 }
 
 long setManualSurfacePointer(long surfaceID, void* ptr) {
@@ -156,6 +159,6 @@
 	surface = (ManualSurface*)surfaceHandle;	
 	if (surface->isLocked) return FALSE; /* can't set pointer while surface is locked */
 	surface->ptr = ptr;
-	DPRINTF(("Set Surface: %lx Polonger: %lx\n", surfaceID, (long)ptr));
+	DPRINTF(("Set Surface: %lx Pointer: %lx\n", surfaceID, (long)ptr));
 	return TRUE;
 }

Modified: trunk/platforms/Cross/plugins/SurfacePlugin/SurfacePlugin.h
===================================================================
--- trunk/platforms/Cross/plugins/SurfacePlugin/SurfacePlugin.h	2016-02-21 04:56:31 UTC (rev 3625)
+++ trunk/platforms/Cross/plugins/SurfacePlugin/SurfacePlugin.h	2016-02-22 18:51:24 UTC (rev 3626)
@@ -6,10 +6,10 @@
 
 /* Plugins creating their own surfaces must register these using
    the following set of functions. The typedefs are for easier casts. */
-typedef long (*fn_getSurfaceFormat)(long surfaceHandle, long* width, long* height, long* depth, long* isMSB);
-typedef long (*fn_lockSurface)(long surfaceHandle, long *pitch, long x, long y, long w, long h);
-typedef long (*fn_unlockSurface)(long surfaceHandle, long x, long y, long w, long h);
-typedef long (*fn_showSurface)(long surfaceHandle, long x, long y, long w, long h);
+typedef long (*fn_getSurfaceFormat)(void * surfaceHandle, long* width, long* height, long* depth, long* isMSB);
+typedef long (*fn_lockSurface)(void * surfaceHandle, long *pitch, long x, long y, long w, long h);
+typedef long (*fn_unlockSurface)(void * surfaceHandle, long x, long y, long w, long h);
+typedef long (*fn_showSurface)(void * surfaceHandle, long x, long y, long w, long h);
 
 typedef struct sqSurfaceDispatch {
 	/* Version information. Must be provided by the client


Property changes on: trunk/platforms/Cross/plugins/sqPluginsSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Sat Feb 20 20:22:47 PST 2016
   + Mon Feb 22 10:32:52 PST 2016



More information about the Vm-dev mailing list