Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 153843 Details for
Bug 152606
net-im/pidgin-2.2.2 will not run correctly on big endian 64bit systems
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Fixes the lockup on ppc64
savedstatuses_ppc64.patch (text/plain), 5.67 KB, created by
Joe Jezak (RETIRED)
on 2008-05-21 13:31:28 UTC
(
hide
)
Description:
Fixes the lockup on ppc64
Filename:
MIME Type:
Creator:
Joe Jezak (RETIRED)
Created:
2008-05-21 13:31:28 UTC
Size:
5.67 KB
patch
obsolete
>--- savedstatuses.c 2008-03-31 13:21:24.000000000 -0400 >+++ pidgin-2.4.1/libpurple/savedstatuses.c 2008-05-20 22:00:05.000000000 -0400 >@@ -65,9 +65,9 @@ > char *message; > > /** The timestamp when this saved status was created. This must be unique. */ >- time_t creation_time; >+ unsigned int creation_time; > >- time_t lastused; >+ unsigned int lastused; > > unsigned int usage_count; > >@@ -143,17 +143,19 @@ > static void > set_creation_time(PurpleSavedStatus *status, time_t creation_time) > { >+ unsigned int time; >+ > g_return_if_fail(status != NULL); > >+ /* Since the hash is int based, make sure time_t is an int */ >+ time = (unsigned int)creation_time; > /* Avoid using 0 because it's an invalid hash key */ >- status->creation_time = creation_time != 0 ? creation_time : 1; >+ status->creation_time = time != 0 ? time : 1; > > while (g_hash_table_lookup(creation_times, &status->creation_time) != NULL) > status->creation_time++; > >- g_hash_table_insert(creation_times, >- &status->creation_time, >- status); >+ g_hash_table_insert(creation_times, &status->creation_time, status); > } > > /** >@@ -172,9 +174,9 @@ > { > const PurpleSavedStatus *saved_status_a = a; > const PurpleSavedStatus *saved_status_b = b; >- time_t time_a = saved_status_a->lastused + >+ unsigned int time_a = saved_status_a->lastused + > (MIN(saved_status_a->usage_count, 10) * 86400); >- time_t time_b = saved_status_b->lastused + >+ unsigned int time_b = saved_status_b->lastused + > (MIN(saved_status_b->usage_count, 10) * 86400); > if (time_a > time_b) > return -1; >@@ -194,8 +196,7 @@ > { > GList *l, *next; > PurpleSavedStatus *saved_status, *current_status; >- int count; >- time_t creation_time; >+ unsigned int count, creation_time; > > current_status = purple_savedstatus_get_current(); > >@@ -285,10 +286,10 @@ > xmlnode_set_attrib(node, "transient", "true"); > } > >- snprintf(buf, sizeof(buf), "%lu", status->creation_time); >+ snprintf(buf, sizeof(buf), "%u", status->creation_time); > xmlnode_set_attrib(node, "created", buf); > >- snprintf(buf, sizeof(buf), "%lu", status->lastused); >+ snprintf(buf, sizeof(buf), "%u", status->lastused); > xmlnode_set_attrib(node, "lastused", buf); > > snprintf(buf, sizeof(buf), "%u", status->usage_count); >@@ -482,15 +483,15 @@ > > /* Read the creation time */ > attrib = xmlnode_get_attrib(status, "created"); >- set_creation_time(ret, (attrib != NULL ? atol(attrib) : 0)); >+ set_creation_time(ret, (time_t) (attrib != NULL ? atol(attrib) : 0)); > > /* Read the last used time */ > attrib = xmlnode_get_attrib(status, "lastused"); >- ret->lastused = (attrib != NULL ? atol(attrib) : 0); >+ ret->lastused = (unsigned int)(attrib != NULL ? atol(attrib) : 0); > > /* Read the usage count */ > attrib = xmlnode_get_attrib(status, "usage_count"); >- ret->usage_count = (attrib != NULL ? atol(attrib) : 0); >+ ret->usage_count = (unsigned int)(attrib != NULL ? atol(attrib) : 0); > > /* Read the primitive status type */ > node = xmlnode_get_child(status, "state"); >@@ -707,7 +708,7 @@ > void > purple_savedstatus_delete_by_status(PurpleSavedStatus *status) > { >- time_t creation_time, current, idleaway; >+ unsigned int creation_time, current, idleaway; > > g_return_if_fail(status != NULL); > >@@ -801,11 +802,11 @@ > PurpleSavedStatus * > purple_savedstatus_get_default() > { >- int creation_time; >+ unsigned int creation_time; > PurpleSavedStatus *saved_status = NULL; > > creation_time = purple_prefs_get_int("/purple/savedstatus/default"); >- >+ > if (creation_time != 0) > saved_status = g_hash_table_lookup(creation_times, &creation_time); > >@@ -828,7 +829,7 @@ > PurpleSavedStatus * > purple_savedstatus_get_idleaway() > { >- int creation_time; >+ unsigned int creation_time; > PurpleSavedStatus *saved_status = NULL; > > creation_time = purple_prefs_get_int("/purple/savedstatus/idleaway"); >@@ -907,7 +908,7 @@ > PurpleSavedStatus * > purple_savedstatus_get_startup() > { >- int creation_time; >+ unsigned int creation_time; > PurpleSavedStatus *saved_status = NULL; > > creation_time = purple_prefs_get_int("/purple/savedstatus/startup"); >@@ -952,11 +953,15 @@ > { > GList *iter; > PurpleSavedStatus *status; >+ unsigned int time; >+ >+ /* Make sure the time is an integer so it works with the hash table */ >+ time = (unsigned int) creation_time; > > for (iter = saved_statuses; iter != NULL; iter = iter->next) > { > status = (PurpleSavedStatus *)iter->data; >- if (status->creation_time == creation_time) >+ if (status->creation_time == time) > return status; > } > >@@ -965,7 +970,7 @@ > > PurpleSavedStatus * > purple_savedstatus_find_transient_by_type_and_message(PurpleStatusPrimitive type, >- const char *message) >+ const char *message) > { > GList *iter; > PurpleSavedStatus *status; >@@ -1048,7 +1053,7 @@ > return saved_status->message; > } > >-time_t >+unsigned int > purple_savedstatus_get_creation_time(const PurpleSavedStatus *saved_status) > { > g_return_val_if_fail(saved_status != NULL, 0); >@@ -1109,7 +1114,7 @@ > g_return_if_fail(saved_status != NULL); > > /* Make sure our list of saved statuses remains sorted */ >- saved_status->lastused = time(NULL); >+ saved_status->lastused = (unsigned int) time(NULL); > saved_status->usage_count++; > saved_statuses = g_list_remove(saved_statuses, saved_status); > saved_statuses = g_list_insert_sorted(saved_statuses, saved_status, saved_statuses_sort_func); >--- savedstatuses.h 2008-03-31 13:21:24.000000000 -0400 >+++ pidgin-2.4.1/libpurple/savedstatuses.h 2008-05-20 22:00:05.000000000 -0400 >@@ -334,7 +334,7 @@ > * > * @return The timestamp when this saved status was created. > */ >-time_t purple_savedstatus_get_creation_time(const PurpleSavedStatus *saved_status); >+unsigned int purple_savedstatus_get_creation_time(const PurpleSavedStatus *saved_status); > > /** > * Determine if a given saved status has "substatuses,"
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 152606
:
104523
|
153843
|
153873