Coder Social home page Coder Social logo

Comments (9)

mcatanzariti avatar mcatanzariti commented on June 19, 2024

Please provide the whole callstack!

from dahomey.cbor.

jtorvald avatar jtorvald commented on June 19, 2024

If I step through it, it's:
DateTimeConverter.cs:24
return DateTimeOffset.FromUnixTimeSeconds(unixTime).DateTime;

MemberConverter.cs:51
_memberSetter((T)obj, _memberConverter.Read(ref reader)); <-- HERE

Probably something with:
private readonly Action<T, TM> _memberSetter;

It has to do with the limitations of Xamarin.iOS described in the URL above and probably has to do with the Generic T but not sure what and how to go around it. Is it possible to have a converter without using this generic code?

from dahomey.cbor.

mcatanzariti avatar mcatanzariti commented on June 19, 2024

Sorry,

It's not clear enough.

MemberConverter.cs:51
_memberSetter((T)obj, _memberConverter.Read(ref reader));

is called for every type of property, integers, floats, strings, objects, collections etc. Not only DateTime.

If it fails for DateTime, it should fail for any other type. Is it the case?

Does the Xamarin JIT problem trigger any kind of exception?
If it's the case it would be helpful to get the full callstack of this exception to give me more hints about the problem.

Thank you

from dahomey.cbor.

mcatanzariti avatar mcatanzariti commented on June 19, 2024

Also could provide your custom class and Cbor input buffer please?

from dahomey.cbor.

jtorvald avatar jtorvald commented on June 19, 2024

@mcatanzariti the problem is that there is no full callstack because it does not give me an exception. It probably gets swallowed somehow. It appears as a debug message in the logs, no exception.
I changed the data type to a long and that works. It's weird because other scalar types and my own classes work. When I make it a long instead of DateTime it works.
Reading the limitations does not ring a bell?
I will try to give some clarity about this later this week, hopefully with custom class and cbor buffer.

from dahomey.cbor.

mcatanzariti avatar mcatanzariti commented on June 19, 2024

Hi,

When you have time, could you provide a custom class?

I have an hypothesis, if you use a field instead of a property, the field accessor is generated by compiling an expression tree, which trigger the JIT. So it won't be compatible with Xamarin AOT...

from dahomey.cbor.

jtorvald avatar jtorvald commented on June 19, 2024

I will just not sure when. Quite busy at the moment. Hopefully I manage next week!

from dahomey.cbor.

jtorvald avatar jtorvald commented on June 19, 2024

Uhm can it be that you meant it the other way around? I'm using a field now and that seems to work.

from dahomey.cbor.

mcatanzariti avatar mcatanzariti commented on June 19, 2024

Hum I cannot explain it because the field getter/setter are generated by invoking the JIT whereas the property getter/setter already exist and are invoked by reflection

from dahomey.cbor.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.