From cc0821558f32ff5e89facdb6cfd6460bd082edaa Mon Sep 17 00:00:00 2001 From: Eliot Miranda Date: Tue, 14 May 2024 16:42:09 -0700 Subject: [PATCH] CogVM source as per VMMaker.oscog-eem.3376 Fix some compilation warnings in the ImmX11Plugin due to casting pointers to ints for testing, but do so by using a more modern API. --- src/plugins/ImmX11Plugin/ImmX11Plugin.c | 237 ++++++++---------------- 1 file changed, 82 insertions(+), 155 deletions(-) diff --git a/src/plugins/ImmX11Plugin/ImmX11Plugin.c b/src/plugins/ImmX11Plugin/ImmX11Plugin.c index 03e3495020..0ed2dd18f8 100644 --- a/src/plugins/ImmX11Plugin/ImmX11Plugin.c +++ b/src/plugins/ImmX11Plugin/ImmX11Plugin.c @@ -1,9 +1,9 @@ /* Automatically generated by - SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.3275 uuid: 86b52edc-43a4-467b-9f26-1eec38a0726b + SmartSyntaxPluginCodeGenerator VMMaker.oscog-eem.3376 uuid: faacafb6-e86f-47eb-a105-34e030dca3dd from - ImmX11Plugin VMMaker.oscog-eem.3275 uuid: 86b52edc-43a4-467b-9f26-1eec38a0726b + ImmX11Plugin VMMaker.oscog-eem.3376 uuid: faacafb6-e86f-47eb-a105-34e030dca3dd */ -static char __buildInfo[] = "ImmX11Plugin VMMaker.oscog-eem.3275 uuid: 86b52edc-43a4-467b-9f26-1eec38a0726b " __DATE__ ; +static char __buildInfo[] = "ImmX11Plugin VMMaker.oscog-eem.3376 uuid: faacafb6-e86f-47eb-a105-34e030dca3dd " __DATE__ ; #include "config.h" @@ -67,13 +67,10 @@ EXPORT(sqInt) setInterpreter(struct VirtualMachine *anInterpreter); /*** Variables ***/ #if !defined(SQUEAK_BUILTIN_PLUGIN) -static void * (*arrayValueOf)(sqInt oop); static sqInt (*booleanValueOf)(sqInt obj); -static sqInt (*classString)(void); static sqInt (*failed)(void); static sqInt (*falseObject)(void); static void * (*firstIndexableField)(sqInt oop); -static sqInt (*instantiateClassindexableSize)(sqInt classPointer, sqInt size); #if !defined(integerValueOf) static sqInt (*integerValueOf)(sqInt oop); #endif @@ -81,21 +78,20 @@ static sqInt (*isBooleanObject)(sqInt oop); #if !defined(isIntegerObject) static sqInt (*isIntegerObject)(sqInt objectPointer); #endif +static sqInt (*methodReturnString)(char *aCString); static sqInt (*methodReturnValue)(sqInt oop); static sqInt (*nilObject)(void); static sqInt (*primitiveFail)(void); static sqInt (*primitiveFailFor)(sqInt reasonCode); static sqInt (*stSizeOf)(sqInt oop); static sqInt (*stackValue)(sqInt offset); +static sqInt (*stringForCString)(char *aCString); static sqInt (*trueObject)(void); #else /* !defined(SQUEAK_BUILTIN_PLUGIN) */ -extern void * arrayValueOf(sqInt oop); extern sqInt booleanValueOf(sqInt obj); -extern sqInt classString(void); extern sqInt failed(void); extern sqInt falseObject(void); extern void * firstIndexableField(sqInt oop); -extern sqInt instantiateClassindexableSize(sqInt classPointer, sqInt size); #if !defined(integerValueOf) extern sqInt integerValueOf(sqInt oop); #endif @@ -107,17 +103,23 @@ extern sqInt isBooleanObject(sqInt oop); #if !defined(isIntegerObject) extern sqInt isIntegerObject(sqInt objectPointer); #endif +extern sqInt methodReturnString(char *aCString); extern sqInt methodReturnValue(sqInt oop); extern sqInt nilObject(void); extern sqInt primitiveFail(void); extern sqInt primitiveFailFor(sqInt reasonCode); extern sqInt stSizeOf(sqInt oop); extern sqInt stackValue(sqInt offset); +#if VM_PROXY_MAJOR > 1 || (VM_PROXY_MAJOR == 1 && VM_PROXY_MINOR >= 14) +extern sqInt stringForCString(char *aCString); +#else +# define stringForCString(aCString) 0 +#endif extern sqInt trueObject(void); extern #endif struct VirtualMachine* interpreterProxy; -static const char *moduleName = "ImmX11Plugin VMMaker.oscog-eem.3275 " INT_EXT; +static const char *moduleName = "ImmX11Plugin VMMaker.oscog-eem.3376 " INT_EXT; @@ -137,114 +139,70 @@ getModuleName(void) EXPORT(sqInt) primGetEncoding(void) { - char *array; - int len; - sqInt ret; - - len = strlen(sqTextEncoding); - ret = instantiateClassindexableSize(classString(), len); - array = ((char *) (firstIndexableField(ret))); - strncpy(array, (char *)sqTextEncoding, len); - return ret; + methodReturnValue(stringForCString(sqTextEncoding)); + return 0; } /* ImmX11Plugin>>#primGetLocale */ EXPORT(sqInt) primGetLocale(void) { - char *array; - int len; - char *locale; - sqInt ret; + char *cString; - locale = setlocale(LC_CTYPE, ""); - if (locale) { - len = strlen(locale); - ret = instantiateClassindexableSize(classString(), len); - array = ((char *) (firstIndexableField(ret))); - strncpy(array, (char *)locale, len); + /* begin methodReturnStringOrNil: */ + cString = ((char *) (setlocale(LC_CTYPE, ""))); + if (cString == null) { + methodReturnValue(nilObject()); } else { - ret = nilObject(); + methodReturnString(cString); } - return ret; + return 0; } /* ImmX11Plugin>>#primGetLocaleEncoding */ EXPORT(sqInt) primGetLocaleEncoding(void) { - char *array; - int len; - sqInt ret; - - if ((int) localeEncoding) { - len = strlen(localeEncoding); - ret = instantiateClassindexableSize(classString(), len); - array = ((char *) (firstIndexableField(ret))); - strncpy(array, (char *)localeEncoding, len); + /* begin methodReturnStringOrNil: */ + if ((((char *) localeEncoding)) == null) { + methodReturnValue(nilObject()); } else { - ret = nilObject(); + methodReturnString(((char *) localeEncoding)); } - return ret; + return 0; } /* ImmX11Plugin>>#primGetPathEnc */ EXPORT(sqInt) primGetPathEnc(void) { - char *array; - int len; - sqInt ret; - - len = strlen(uxPathEncoding); - ret = instantiateClassindexableSize(classString(), len); - array = ((char *) (firstIndexableField(ret))); - strncpy(array, (char *)uxPathEncoding, len); - return ret; + methodReturnValue(stringForCString(uxPathEncoding)); + return 0; } /* ImmX11Plugin>>#primGetTextEnc */ EXPORT(sqInt) primGetTextEnc(void) { - char *array; - int len; - sqInt ret; - - len = strlen(uxTextEncoding); - ret = instantiateClassindexableSize(classString(), len); - array = ((char *) (firstIndexableField(ret))); - strncpy(array, (char *)uxTextEncoding, len); - return ret; + methodReturnValue(stringForCString(uxTextEncoding)); + return 0; } /* ImmX11Plugin>>#primGetXWinEnc */ EXPORT(sqInt) primGetXWinEnc(void) { - char *array; - int len; - sqInt ret; - - len = strlen(uxXWinEncoding); - ret = instantiateClassindexableSize(classString(), len); - array = ((char *) (firstIndexableField(ret))); - strncpy(array, (char *)uxXWinEncoding, len); - return ret; + methodReturnValue(stringForCString(uxXWinEncoding)); + return 0; } /* ImmX11Plugin>>#primIsTextEncUTF8 */ EXPORT(sqInt) primIsTextEncUTF8(void) { - sqInt _return_value; - - _return_value = (((textEncodingUTF8)) ? trueObject() : falseObject()); - if (!(failed())) { - methodReturnValue(_return_value); - } + methodReturnValue(((textEncodingUTF8) ? trueObject() : falseObject())); return null; } @@ -299,17 +257,16 @@ primSetCompositionWindowPosition(void) EXPORT(sqInt) primSetEncodingToLocale(void) { - sqInt ret; + sqInt _return_value; - if ((int) localeEncoding) { - sqTextEncoding = (void *)localeEncoding; - ret = trueObject(); - } - else { - ret = falseObject(); + if (!(localeEncoding == null)) { + sqTextEncoding = localeEncoding; } if (!(failed())) { - methodReturnValue(ret); + _return_value = (((localeEncoding != null)) ? trueObject() : falseObject()); + if (!(failed())) { + methodReturnValue(_return_value); + } } return null; } @@ -318,12 +275,7 @@ primSetEncodingToLocale(void) EXPORT(sqInt) primSetEncoding(sqInt encoding) { - size_t len; - char *name; - - len = stSizeOf(encoding); - name = ((char *) (firstIndexableField(encoding))); - setNEncoding(&sqTextEncoding, name, len); + setNEncoding((&sqTextEncoding), firstIndexableField(encoding), stSizeOf(encoding)); return encoding; } @@ -331,13 +283,8 @@ primSetEncoding(sqInt encoding) EXPORT(sqInt) primSetLocaleEncoding(sqInt encoding) { - size_t len; - char *name; - - len = stSizeOf(encoding); - name = ((char *) (firstIndexableField(encoding))); - setNEncoding(&localeEncoding, name, len); - sqTextEncoding= uxTextEncoding= uxPathEncoding= uxXWinEncoding= localeEncoding; + setNEncoding((&localeEncoding), firstIndexableField(encoding), stSizeOf(encoding)); + sqTextEncoding = (uxTextEncoding = (uxPathEncoding = (uxXWinEncoding = localeEncoding))); return encoding; } @@ -345,41 +292,33 @@ primSetLocaleEncoding(sqInt encoding) EXPORT(sqInt) primSetLocale(sqInt locale) { - char *array; - size_t len; - char *name; - sqInt ret; + char *cString; - len = stSizeOf(locale); - name = ((char *) (arrayValueOf(locale))); - name = setLocale(name, len); - if ((int) name) { - len = strlen(name); - ret = instantiateClassindexableSize(classString(), len); - array = ((char *) (firstIndexableField(ret))); - strncpy(array, (char *)name, len); - return ret; + /* begin methodReturnStringOrNil: */ + cString = ((char *) (setLocale(firstIndexableField(locale), stSizeOf(locale)))); + if (cString == null) { + methodReturnValue(nilObject()); } else { - return nilObject(); + methodReturnString(cString); } + return 0; } /* ImmX11Plugin>>#primSetPathEncToLocale */ EXPORT(sqInt) primSetPathEncToLocale(void) { - sqInt ret; + sqInt _return_value; - if ((int) localeEncoding) { - uxPathEncoding = (void *)localeEncoding; - ret = trueObject(); - } - else { - ret = falseObject(); + if (!(localeEncoding == null)) { + uxPathEncoding = localeEncoding; } if (!(failed())) { - methodReturnValue(ret); + _return_value = (((localeEncoding != null)) ? trueObject() : falseObject()); + if (!(failed())) { + methodReturnValue(_return_value); + } } return null; } @@ -388,12 +327,7 @@ primSetPathEncToLocale(void) EXPORT(sqInt) primSetPathEnc(sqInt encoding) { - size_t len; - char *name; - - len = stSizeOf(encoding); - name = ((char *) (firstIndexableField(encoding))); - setNEncoding(&uxPathEncoding, name, len); + setNEncoding((&uxPathEncoding), firstIndexableField(encoding), stSizeOf(encoding)); return encoding; } @@ -401,17 +335,16 @@ primSetPathEnc(sqInt encoding) EXPORT(sqInt) primSetTextEncToLocale(void) { - sqInt ret; + sqInt _return_value; - if ((int) localeEncoding) { - uxTextEncoding = (void *)localeEncoding; - ret = trueObject(); - } - else { - ret = falseObject(); + if (!(localeEncoding == null)) { + uxTextEncoding = localeEncoding; } if (!(failed())) { - methodReturnValue(ret); + _return_value = (((localeEncoding != null)) ? trueObject() : falseObject()); + if (!(failed())) { + methodReturnValue(_return_value); + } } return null; } @@ -437,12 +370,7 @@ primSetTextEncUTF8(void) EXPORT(sqInt) primSetTextEnc(sqInt encoding) { - size_t len; - char *name; - - len = stSizeOf(encoding); - name = ((char *) (firstIndexableField(encoding))); - setNEncoding(&uxTextEncoding, name, len); + setNEncoding((&uxTextEncoding), firstIndexableField(encoding), stSizeOf(encoding)); return encoding; } @@ -450,17 +378,16 @@ primSetTextEnc(sqInt encoding) EXPORT(sqInt) primSetXWinEncToLocale(void) { - sqInt ret; + sqInt _return_value; - if ((int) localeEncoding) { - uxXWinEncoding = (void *)localeEncoding; - ret = trueObject(); - } - else { - ret = falseObject(); + if (!(localeEncoding == null)) { + uxXWinEncoding = localeEncoding; } if (!(failed())) { - methodReturnValue(ret); + _return_value = (((localeEncoding != null)) ? trueObject() : falseObject()); + if (!(failed())) { + methodReturnValue(_return_value); + } } return null; } @@ -469,12 +396,7 @@ primSetXWinEncToLocale(void) EXPORT(sqInt) primSetXWinEnc(sqInt encoding) { - size_t len; - char *name; - - len = stSizeOf(encoding); - name = ((char *) (firstIndexableField(encoding))); - setNEncoding(&uxXWinEncoding, name, len); + setNEncoding((&uxXWinEncoding), firstIndexableField(encoding), stSizeOf(encoding)); return encoding; } @@ -496,13 +418,10 @@ setInterpreter(struct VirtualMachine *anInterpreter) if (ok) { #if !defined(SQUEAK_BUILTIN_PLUGIN) - arrayValueOf = interpreterProxy->arrayValueOf; booleanValueOf = interpreterProxy->booleanValueOf; - classString = interpreterProxy->classString; failed = interpreterProxy->failed; falseObject = interpreterProxy->falseObject; firstIndexableField = interpreterProxy->firstIndexableField; - instantiateClassindexableSize = interpreterProxy->instantiateClassindexableSize; #if !defined(integerValueOf) integerValueOf = interpreterProxy->integerValueOf; #endif @@ -516,12 +435,20 @@ setInterpreter(struct VirtualMachine *anInterpreter) #if !defined(isIntegerObject) isIntegerObject = interpreterProxy->isIntegerObject; #endif + methodReturnString = interpreterProxy->methodReturnString; methodReturnValue = interpreterProxy->methodReturnValue; nilObject = interpreterProxy->nilObject; primitiveFail = interpreterProxy->primitiveFail; primitiveFailFor = interpreterProxy->primitiveFailFor; stSizeOf = interpreterProxy->stSizeOf; stackValue = interpreterProxy->stackValue; +#if VM_PROXY_MAJOR > 1 || (VM_PROXY_MAJOR == 1 && VM_PROXY_MINOR >= 14) + stringForCString = interpreterProxy->stringForCString; +#else +#if !defined(stringForCString) + stringForCString = 0; +#endif +#endif trueObject = interpreterProxy->trueObject; #endif /* !defined(SQUEAK_BUILTIN_PLUGIN) */ }