summaryrefslogtreecommitdiff
path: root/yapp
diff options
context:
space:
mode:
Diffstat (limited to 'yapp')
-rw-r--r--yapp/services.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/yapp/services.cpp b/yapp/services.cpp
index 2b113fa..857b814 100644
--- a/yapp/services.cpp
+++ b/yapp/services.cpp
@@ -395,7 +395,11 @@ POPUPCLASS *classes = 0;
INT_PTR RegisterPopupClass(WPARAM wParam, LPARAM lParam)
{
- POPUPCLASS *pc = (POPUPCLASS *)lParam;
+ classes = (POPUPCLASS *)mir_realloc(classes, sizeof(POPUPCLASS) * (num_classes + 1));
+ memcpy(classes + num_classes, (PVOID)lParam, sizeof(POPUPCLASS));
+ POPUPCLASS *pc = classes + num_classes;
+ num_classes++;
+
pc->pszName = mir_strdup(pc->pszName);
if(pc->flags & PCF_UNICODE)
pc->pwszDescription = mir_wstrdup(pc->pwszDescription);
@@ -411,9 +415,6 @@ INT_PTR RegisterPopupClass(WPARAM wParam, LPARAM lParam)
mir_snprintf(setting, 256, "%s/BgCol", pc->pszName);
pc->colorBack = (COLORREF)DBGetContactSettingDword(0, MODULE, setting, (DWORD)pc->colorBack);
- classes = (POPUPCLASS *)mir_realloc(classes, sizeof(POPUPCLASS) * (num_classes + 1));
- memcpy(classes + num_classes, pc, sizeof(POPUPCLASS));
- num_classes++;
return 0;
}