From 2ba72d2ef24cd781b0a54cc650fde029ba0150fe Mon Sep 17 00:00:00 2001 From: Raymond Toy Date: Sat, 4 May 2024 19:55:14 -0700 Subject: [PATCH 1/4] Fix #312: Use correct type for message_write_float `message_write_float` was declared to have arguments `message_t,float,int`. Change it to `message_t,float*,int` and update the implementation accordingly. --- src/motif/server/datatrans.c | 4 ++-- src/motif/server/datatrans.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/motif/server/datatrans.c b/src/motif/server/datatrans.c index e9f960eba..00e2afd67 100644 --- a/src/motif/server/datatrans.c +++ b/src/motif/server/datatrans.c @@ -265,10 +265,10 @@ void message_write_color(message_t m,XColor *color,int tag) message_put_word(m,color->blue); } -void message_write_float(message_t m,float f,int tag) +void message_write_float(message_t m,float *f,int tag) { message_put_dblword(m,combine_type_and_data(tag,0)); - message_put_dblword(m,f); + message_put_dblword(m,*f); } diff --git a/src/motif/server/datatrans.h b/src/motif/server/datatrans.h index 7411a1751..32536d543 100644 --- a/src/motif/server/datatrans.h +++ b/src/motif/server/datatrans.h @@ -38,7 +38,7 @@ extern void message_write_int_list(); extern void message_write_event(); extern void message_write_color(); /* GCC complains without the full prototype */ -extern void message_write_float(message_t,float,int); +extern void message_write_float(message_t,float*,int); -- GitLab From 2c4e223e3a53f79e3c147a4663803ff1620ef609 Mon Sep 17 00:00:00 2001 From: Raymond Toy Date: Fri, 10 May 2024 15:00:29 -0700 Subject: [PATCH 2/4] Declare type_writer to have a void* arg instead of caddr_t. Update datatrans.h so that message_write_float is declared to have a second arg of type void*. Then update implementation of message_write_float to have a matching function signature and cast the void* arg to float* so we can get the float value. --- src/motif/server/datatrans.c | 6 ++++-- src/motif/server/datatrans.h | 2 +- src/motif/server/tables.h | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/motif/server/datatrans.c b/src/motif/server/datatrans.c index 00e2afd67..79fc24a76 100644 --- a/src/motif/server/datatrans.c +++ b/src/motif/server/datatrans.c @@ -265,10 +265,12 @@ void message_write_color(message_t m,XColor *color,int tag) message_put_word(m,color->blue); } -void message_write_float(message_t m,float *f,int tag) +void message_write_float(message_t m,void *f,int tag) { + float *fl = (float *) f; + message_put_dblword(m,combine_type_and_data(tag,0)); - message_put_dblword(m,*f); + message_put_dblword(m,*fl); } diff --git a/src/motif/server/datatrans.h b/src/motif/server/datatrans.h index 32536d543..88d346b0e 100644 --- a/src/motif/server/datatrans.h +++ b/src/motif/server/datatrans.h @@ -38,7 +38,7 @@ extern void message_write_int_list(); extern void message_write_event(); extern void message_write_color(); /* GCC complains without the full prototype */ -extern void message_write_float(message_t,float*,int); +extern void message_write_float(message_t,void*,int); diff --git a/src/motif/server/tables.h b/src/motif/server/tables.h index 50678a9a6..db6159bb4 100644 --- a/src/motif/server/tables.h +++ b/src/motif/server/tables.h @@ -10,8 +10,8 @@ #ifndef TABLES_H #define TABLES_H -typedef void (*type_writer)(message_t out,caddr_t src,int type_tag); -typedef void (*type_reader)(message_t in,caddr_t dest,int type_tag,int data); +typedef void (*type_writer)(message_t out,void *src,int type_tag); +typedef void (*type_reader)(message_t in,void *dest,int type_tag,int data); typedef struct { String type; -- GitLab From 300e5279ef294e86cb8c721549c386a4c1efcdc6 Mon Sep 17 00:00:00 2001 From: Raymond Toy Date: Tue, 28 May 2024 07:27:42 -0700 Subject: [PATCH 3/4] Address review comments, updating spacing. --- src/motif/server/datatrans.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/motif/server/datatrans.h b/src/motif/server/datatrans.h index 88d346b0e..71ca4dace 100644 --- a/src/motif/server/datatrans.h +++ b/src/motif/server/datatrans.h @@ -38,7 +38,7 @@ extern void message_write_int_list(); extern void message_write_event(); extern void message_write_color(); /* GCC complains without the full prototype */ -extern void message_write_float(message_t,void*,int); +extern void message_write_float(message_t,void *,int); -- GitLab From 2eddddf45ba3e8a0bfeac3e8e8ed9f13bc47c165 Mon Sep 17 00:00:00 2001 From: Raymond Toy Date: Wed, 29 May 2024 17:22:42 -0700 Subject: [PATCH 4/4] Address review comments --- src/motif/server/datatrans.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/motif/server/datatrans.c b/src/motif/server/datatrans.c index 79fc24a76..cff33799b 100644 --- a/src/motif/server/datatrans.c +++ b/src/motif/server/datatrans.c @@ -267,10 +267,8 @@ void message_write_color(message_t m,XColor *color,int tag) void message_write_float(message_t m,void *f,int tag) { - float *fl = (float *) f; - message_put_dblword(m,combine_type_and_data(tag,0)); - message_put_dblword(m,*fl); + message_put_dblword(m,*(long *) f); } @@ -526,8 +524,8 @@ void message_read_color(message_t m,XColor *color,int tag, int red) void message_read_float(message_t m,float *f,int tag,int data) { - fprintf(stderr,">>>>> Warning:message_read_float: Not implemented.\n"); - fflush(stderr); + long d = message_get_dblword(m); + memcpy(f, &d, sizeof(*f)); } -- GitLab