--- a/libpurple/plugins/perl/perl-common.c Mon Jul 15 19:43:49 2013 +0530 +++ b/libpurple/plugins/perl/perl-common.c Mon Jul 15 19:45:12 2013 +0530 @@ -380,26 +380,22 @@ void * purple_perl_data_from_sv(GType type, SV *sv) { - if (type == G_TYPE_BOOLEAN) - return (void *)SvIV(sv); - else if (type == G_TYPE_INT) - return (void *)SvIV(sv); - else if (type == G_TYPE_UINT) - return (void *)SvUV(sv); - else if (type == G_TYPE_LONG) - return (void *)SvIV(sv); - else if (type == G_TYPE_ULONG) - return (void *)SvUV(sv); - else if (type == G_TYPE_INT64) - return (void *)SvIV(sv); - else if (type == G_TYPE_UINT64) - return (void *)SvUV(sv); - else if (type == G_TYPE_STRING) - return g_strdup(SvPVutf8_nolen(sv)); - else if (type == G_TYPE_POINTER) - return (void *)SvIV(sv); - else if (type == G_TYPE_BOXED) - return (void *)SvIV(sv); + + switch (type) { + case G_TYPE_BOOLEAN: return (void *)SvIV(sv); + case G_TYPE_INT: return (void *)SvIV(sv); + case G_TYPE_UINT: return (void *)SvUV(sv); + case G_TYPE_LONG: return (void *)SvIV(sv); + case G_TYPE_ULONG: return (void *)SvUV(sv); + case G_TYPE_INT64: return (void *)SvIV(sv); + case G_TYPE_UINT64: return (void *)SvUV(sv); + case G_TYPE_STRING: return g_strdup(SvPVutf8_nolen(sv)); + case G_TYPE_POINTER: return (void *)SvIV(sv); + case G_TYPE_BOXED: return (void *)SvIV(sv); + + default: + return NULL; + } return NULL; } @@ -409,68 +405,44 @@ { const char *stash = "Purple"; /* ? */ - switch (purple_value_get_subtype(value)) { - case PURPLE_SUBTYPE_ACCOUNT: - stash = "Purple::Account"; - break; - case PURPLE_SUBTYPE_BLIST: - stash = "Purple::BuddyList"; - break; - case PURPLE_SUBTYPE_BLIST_BUDDY: - stash = "Purple::BuddyList::Buddy"; - break; - case PURPLE_SUBTYPE_BLIST_GROUP: - stash = "Purple::BuddyList::Group"; - break; - case PURPLE_SUBTYPE_BLIST_CHAT: - stash = "Purple::BuddyList::Chat"; - break; - case PURPLE_SUBTYPE_BUDDY_ICON: - stash = "Purple::Buddy::Icon"; - break; - case PURPLE_SUBTYPE_CONNECTION: - stash = "Purple::Connection"; - break; - case PURPLE_SUBTYPE_CONVERSATION: - stash = "Purple::Conversation"; - break; - case PURPLE_SUBTYPE_PLUGIN: - stash = "Purple::Plugin"; - break; - case PURPLE_SUBTYPE_BLIST_NODE: - stash = "Purple::BuddyList::Node"; - break; - case PURPLE_SUBTYPE_CIPHER: - stash = "Purple::Cipher"; - break; - case PURPLE_SUBTYPE_STATUS: - stash = "Purple::Status"; - break; - case PURPLE_SUBTYPE_SAVEDSTATUS: - stash = "Purple::SavedStatus"; - break; - case PURPLE_SUBTYPE_LOG: - stash = "Purple::Log"; - break; - case PURPLE_SUBTYPE_XFER: - stash = "Purple::Xfer"; - break; - case PURPLE_SUBTYPE_XMLNODE: - stash = "Purple::XMLNode"; - break; - case PURPLE_SUBTYPE_USERINFO: - stash = "Purple::NotifyUserInfo"; - break; - case PURPLE_SUBTYPE_STORED_IMAGE: - stash = "Purple::StoredImage"; - break; - case PURPLE_SUBTYPE_CERTIFICATEPOOL: - stash = "Purple::Certificate::Pool"; - break; - case PURPLE_SUBTYPE_UNKNOWN: - stash = "Purple::Unknown"; - break; - } + if (type == PURPLE_TYPE_ACCOUNT) + stash = "Purple::Account"; + else if (type == PURPLE_TYPE_BUDDY_LIST) + stash = "Purple::BuddyList"; + else if (type == PURPLE_TYPE_BUDDY) + stash = "Purple::BuddyList::Buddy"; + else if (type == PURPLE_TYPE_GROUP) + stash = "Purple::BuddyList::Group"; + else if (type == PURPLE_TYPE_CHAT) + stash = "Purple::BuddyList::Chat"; + else if (type == PURPLE_TYPE_BUDDY_ICON) + stash = "Purple::Buddy::Icon"; + else if (type == PURPLE_TYPE_CONNECTION) + stash = "Purple::Connection"; + else if (type == PURPLE_TYPE_CONVERSATION) + stash = "Purple::Conversation"; + else if (type == PURPLE_TYPE_PLUGIN) + stash = "Purple::Plugin"; + else if (type == PURPLE_TYPE_BLIST_NODE) + stash = "Purple::BuddyList::Node"; + else if (type == PURPLE_TYPE_CIPHER) + stash = "Purple::Cipher"; + else if (type == PURPLE_TYPE_STATUS) /* TODO */ + stash = "Purple::Status"; + else if (type == PURPLE_TYPE_SAVEDSTATUS) /* TODO */ + stash = "Purple::SavedStatus"; + else if (type == PURPLE_TYPE_LOG) /* TODO */ + stash = "Purple::Log"; + else if (type == PURPLE_TYPE_XFER) /* TODO */ + stash = "Purple::Xfer"; + else if (type == PURPLE_TYPE_XMLNODE) /* TODO */ + stash = "Purple::XMLNode"; + else if (type == PURPLE_TYPE_USERINFO) /* TODO */ + stash = "Purple::NotifyUserInfo"; + else if (type == PURPLE_TYPE_STORED_IMAGE) /* TODO */ + stash = "Purple::StoredImage"; + else if (type == PURPLE_TYPE_CERTIFICATEPOOL) /* TODO */ + stash = "Purple::Certificate::Pool"; return sv_2mortal(purple_perl_bless_object(arg, stash)); }