Sun, 16 Jul 2023 04:43:58 -0500
Fix some issues with PurpleSavedPresence on 32bit machines
I'm not sure why the GDateTime wasn't failing on amd64, but it should be NULL
when it's not set.
Testing Done:
Ran the unit tests on a 32bit debian container as well as my machine.
Reviewed at https://reviews.imfreedom.org/r/2515/
| libpurple/purplesavedpresence.c | file | annotate | diff | comparison | revisions | |
| libpurple/tests/test_saved_presence.c | file | annotate | diff | comparison | revisions |
--- a/libpurple/purplesavedpresence.c Sun Jul 16 03:24:38 2023 -0500 +++ b/libpurple/purplesavedpresence.c Sun Jul 16 04:43:58 2023 -0500 @@ -94,6 +94,10 @@ } datetime = g_value_get_boxed(value); + if(datetime == NULL) { + return NULL; + } + timestamp = g_date_time_format_iso8601(datetime); if(timestamp != NULL) { GVariant *variant = NULL;
--- a/libpurple/tests/test_saved_presence.c Sun Jul 16 03:24:38 2023 -0500 +++ b/libpurple/tests/test_saved_presence.c Sun Jul 16 04:43:58 2023 -0500 @@ -34,6 +34,7 @@ PurplePresencePrimitive primitive; GDateTime *last_used = NULL; GDateTime *last_used1 = NULL; + guint64 expected_use_count = 123; guint64 use_count; char *id = NULL; char *name = NULL; @@ -49,7 +50,7 @@ presence = g_object_new( PURPLE_TYPE_SAVED_PRESENCE, "last-used", last_used, - "use-count", 123, + "use-count", expected_use_count, "id", "leeloo dallas multipass", "name", "my saved status", "primitive", PURPLE_PRESENCE_PRIMITIVE_STREAMING, @@ -74,7 +75,7 @@ g_assert_true(g_date_time_equal(last_used, last_used1)); g_clear_pointer(&last_used1, g_date_time_unref); - g_assert_cmpuint(use_count, ==, 123); + g_assert_cmpuint(use_count, ==, expected_use_count); g_assert_cmpstr(id, ==, "leeloo dallas multipass"); g_clear_pointer(&id, g_free);