summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-05-10 13:53:11 +0000
committerrubidium <rubidium@openttd.org>2008-05-10 13:53:11 +0000
commit89c15ecb23a5d5b8c61fce86926cedb1a9c32f45 (patch)
treeec400df938c5fd0430f9191f769a4d7a3983f3ef /src
parentd24442ae8b1b84646982cbdf0ff638caf42e1132 (diff)
downloadopenttd-89c15ecb23a5d5b8c61fce86926cedb1a9c32f45.tar.xz
(svn r13030) -Codechange: do use MallocT instead of ReallocT when 100% sure that the pointer you are allocating to is NULL. Patch by Alberth.
Diffstat (limited to 'src')
-rw-r--r--src/window.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/window.cpp b/src/window.cpp
index 0697c75c8..24b2aae8f 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -849,9 +849,17 @@ bool IsWindowOfPrototype(const Window *w, const Widget *widget)
return (w->original_widget == widget);
}
-/** Copies 'widget' to 'w->widget' to allow for resizable windows
+/**
+ * Assign widgets to a new window by initialising its widget pointers, and by
+ * copying the widget array \a widget to \c w->widget to allow for resizable
+ * windows.
* @param w Window on which to attach the widget array
- * @param widget pointer of widget array to fill the window with */
+ * @param widget pointer of widget array to fill the window with
+ *
+ * @post \c w->widget points to allocated memory and contains the copied widget array except for the terminating widget,
+ * \c w->original_widget points to the original widgets,
+ * \c w->widget_count contains number of widgets in the allocated memory.
+ */
void AssignWidgetToWindow(Window *w, const Widget *widget)
{
w->original_widget = widget;
@@ -861,7 +869,7 @@ void AssignWidgetToWindow(Window *w, const Widget *widget)
for (const Widget *wi = widget; wi->type != WWT_LAST; wi++) index++;
- w->widget = ReallocT(w->widget, index);
+ w->widget = MallocT<Widget>(index);
memcpy(w->widget, widget, sizeof(*w->widget) * index);
w->widget_count = index - 1;
} else {