> appData is a weak reference but nothing is null

((AppData)appData.get()).appVersion

If appData is a weak reference, then appData.get() may be null.



On Mon, May 3, 2021 at 6:01 AM 'P5music' via CodenameOne Discussions <
[email protected]> wrote:

> appVersion is just a string, appData is a weak reference but nothing is
> null, as I said the app works outside of the iOS simulator.
> I think that it does not like weak references.
> What could be the cause of the NPE? Maybe those pointers?
> Maybe the weak reference is not created at all in the translated code
> (build bug)?
> Regards
> Il giorno lunedì 3 maggio 2021 alle 13:27:51 UTC+2 Steve Hannah ha scritto:
>
>> When running with the debugger (in Xcode) it will stop on these error.
>> When running normally, it "catches" them and proceeds.
>>
>> ((AppData)appData.get()).appVersion
>>
>> That doesn't look safe.  You say appData is a weak reference? Then get()
>> may return null?  Then the .appVersion will be an NPE, which is essentially
>> what you're seeing.
>>
>> On Sun, May 2, 2021 at 11:27 PM 'P5music' via CodenameOne Discussions <
>> [email protected]> wrote:
>>
>>>
>>> I compiled my app with maven and generated the iOS Xcode project.
>>> When I run it into the iOS simulator (iPad 8th gen) I get this early
>>> error:
>>> Thread 4: EXC_BAD_ACCESS (code=1, address=0x30)
>>> at this instruction
>>> return (*(struct
>>> obj__com_myapp_app_AppData*)__cn1T).com_myapp_app_AppData_appVersion;
>>> Where only the .com_myapp_app_AppData_appVersion part is in red. The iOS
>>> build code is below.
>>>
>>> It happens at
>>> ((AppData)appData.get()).appVersion
>>> Inside AppJSONData class, that has a weak reference to the AppData
>>> instance.
>>> That seems to be a CodenameOne internal problem, not of my app, because
>>> it does not happen either on the simulator, or on Android, or a real iOS
>>> device (32bit).
>>> Am I right?
>>> What’s happening. How can it be avoided? Should weak references be
>>> avoided? I think this one can be removed because it has the same app
>>> lifetime, but there are also others that are dynamic.
>>> Also it can be something that is wrong in the CN1 maven system to be
>>> fixed.
>>> Thanks in advance
>>>
>>> #include "com_myapp_app_AppData.h"
>>> #include "com_myapp_app_AppData.h"
>>> #include "com_myapp_app_AppJSONData.h"
>>> #include "java_io_IOException.h"
>>> #include "java_lang_NullPointerException.h"
>>> #include "java_lang_String.h"
>>> #include "java_lang_ref_WeakReference.h"
>>> const struct clazz *base_interfaces_for_com_myapp_app_AppData[] = {};
>>> struct clazz class__com_myapp_app_AppData = {
>>>   DEBUG_GC_INIT &class__java_lang_Class, 999999, 0, 0, 0, 0,
>>> &__FINALIZER_com_myapp_app_AppData ,0 , &__GC_MARK_com_myapp_app_AppData,
>>> 0, cn1_class_id_com_myapp_app_AppData, "com.myapp.app.AppData", 0, 0, 0,
>>> JAVA_FALSE, &class__java_lang_Object,
>>> base_interfaces_for_com_myapp_app_AppData, 0, 0, 0
>>> , 0, 0, 0, 0, 0, 0};
>>>
>>> JAVA_OBJECT get_field_com_myapp_app_AppData_appVersion(JAVA_OBJECT
>>> __cn1T) {
>>>   return (*(struct
>>> obj__com_myapp_app_AppData*)__cn1T).com_myapp_app_AppData_appVersion;
>>> }
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "CodenameOne Discussions" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/codenameone-discussions/c0d25bdf-85a4-4253-ade1-fcaed6c484dbn%40googlegroups.com
>>> <https://groups.google.com/d/msgid/codenameone-discussions/c0d25bdf-85a4-4253-ade1-fcaed6c484dbn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
>>
>> --
>> Steve Hannah
>> Software Developer
>> Codename One
>> http://www.codenameone.com
>>
> --
> You received this message because you are subscribed to the Google Groups
> "CodenameOne Discussions" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/codenameone-discussions/0a3f4bbd-c6a1-49e9-90d5-738f88666ea4n%40googlegroups.com
> <https://groups.google.com/d/msgid/codenameone-discussions/0a3f4bbd-c6a1-49e9-90d5-738f88666ea4n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Steve Hannah
Software Developer
Codename One
http://www.codenameone.com

-- 
You received this message because you are subscribed to the Google Groups 
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/CAGOYrKU3HYiVPi%3D7DUE0oi1f-CyV4F6V%3Di_mwi5C-H%3D_HPhzPA%40mail.gmail.com.

Reply via email to