Migrated implbug() and userbug() to uipriv forms.

This commit is contained in:
Pietro Gagliardi 2018-04-15 21:46:08 -04:00
parent c6bb463692
commit f93973d3cb
32 changed files with 107 additions and 114 deletions

View File

@ -1,16 +1,4 @@
// ugh, this was only introduced in MSVC 2015...
#ifdef _MSC_VER
#define __func__ __FUNCTION__
#endif
extern void realbug(const char *file, const char *line, const char *func, const char *prefix, const char *format, va_list ap);
#define _ns2(s) #s
#define _ns(s) _ns2(s)
extern void _implbug(const char *file, const char *line, const char *func, const char *format, ...);
#define implbug(...) _implbug(__FILE__, _ns(__LINE__), __func__, __VA_ARGS__)
extern void _userbug(const char *file, const char *line, const char *func, const char *format, ...);
#define userbug(...) _userbug(__FILE__, _ns(__LINE__), __func__, __VA_ARGS__)
// control.c // control.c
extern uiControl *newControl(size_t size, uint32_t OSsig, uint32_t typesig, const char *typenamestr); extern uiControl *newControl(size_t size, uint32_t OSsig, uint32_t typesig, const char *typenamestr);

View File

@ -73,7 +73,7 @@ uiControl *uiAllocControl(size_t size, uint32_t OSsig, uint32_t typesig, const c
void uiFreeControl(uiControl *c) void uiFreeControl(uiControl *c)
{ {
if (uiControlParent(c) != NULL) if (uiControlParent(c) != NULL)
userbug("You cannot destroy a uiControl while it still has a parent. (control: %p)", c); uiprivUserBug("You cannot destroy a uiControl while it still has a parent. (control: %p)", c);
uiprivFree(c); uiprivFree(c);
} }
@ -82,12 +82,12 @@ void uiControlVerifySetParent(uiControl *c, uiControl *parent)
uiControl *curParent; uiControl *curParent;
if (uiControlToplevel(c)) if (uiControlToplevel(c))
userbug("You cannot give a toplevel uiControl a parent. (control: %p)", c); uiprivUserBug("You cannot give a toplevel uiControl a parent. (control: %p)", c);
curParent = uiControlParent(c); curParent = uiControlParent(c);
if (parent != NULL && curParent != NULL) if (parent != NULL && curParent != NULL)
userbug("You cannot give a uiControl a parent while it already has one. (control: %p; current parent: %p; new parent: %p)", c, curParent, parent); uiprivUserBug("You cannot give a uiControl a parent while it already has one. (control: %p; current parent: %p; new parent: %p)", c, curParent, parent);
if (parent == NULL && curParent == NULL) if (parent == NULL && curParent == NULL)
implbug("attempt to double unparent uiControl %p", c); uiprivImplBug("attempt to double unparent uiControl %p", c);
} }
int uiControlEnabledToUser(uiControl *c) int uiControlEnabledToUser(uiControl *c)

View File

@ -2,20 +2,20 @@
#include "../ui.h" #include "../ui.h"
#include "uipriv.h" #include "uipriv.h"
void _implbug(const char *file, const char *line, const char *func, const char *format, ...) void uiprivDoImplBug(const char *file, const char *line, const char *func, const char *format, ...)
{ {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
realbug(file, line, func, "POSSIBLE IMPLEMENTATION BUG; CONTACT ANDLABS:\n", format, ap); uiprivRealBug(file, line, func, "POSSIBLE IMPLEMENTATION BUG; CONTACT ANDLABS:\n", format, ap);
va_end(ap); va_end(ap);
} }
void _userbug(const char *file, const char *line, const char *func, const char *format, ...) void uiprivDoUserBug(const char *file, const char *line, const char *func, const char *format, ...)
{ {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
realbug(file, line, func, "You have a bug: ", format, ap); uiprivRealBug(file, line, func, "You have a bug: ", format, ap);
va_end(ap); va_end(ap);
} }

View File

@ -8,24 +8,30 @@
extern "C" { extern "C" {
#endif #endif
// OS-specific init.* or main.* files
extern uiInitOptions uiprivOptions; extern uiInitOptions uiprivOptions;
// OS-specific alloc.* files
extern void *uiprivAlloc(size_t, const char *); extern void *uiprivAlloc(size_t, const char *);
#define uiprivNew(T) ((T *) uiprivAlloc(sizeof (T), #T)) #define uiprivNew(T) ((T *) uiprivAlloc(sizeof (T), #T))
extern void *uiprivRealloc(void *, size_t, const char *); extern void *uiprivRealloc(void *, size_t, const char *);
extern void uiprivFree(void *); extern void uiprivFree(void *);
// ugh, this was only introduced in MSVC 2015... // debug.c and OS-specific debug.* files
// TODO get rid of this mess...
// ugh, __func__ was only introduced in MSVC 2015...
#ifdef _MSC_VER #ifdef _MSC_VER
#define __func__ __FUNCTION__ #define uiprivMacro__func__ __FUNCTION__
#else
#define uiprivMacro__func__ __func__
#endif #endif
extern void realbug(const char *file, const char *line, const char *func, const char *prefix, const char *format, va_list ap); extern void uiprivRealBug(const char *file, const char *line, const char *func, const char *prefix, const char *format, va_list ap);
#define _ns2(s) #s #define uiprivMacro_ns2(s) #s
#define _ns(s) _ns2(s) #define uiprivMacro_ns(s) uiprivMacro_ns2(s)
extern void _implbug(const char *file, const char *line, const char *func, const char *format, ...); extern void uiprivDoImplBug(const char *file, const char *line, const char *func, const char *format, ...);
#define implbug(...) _implbug(__FILE__, _ns(__LINE__), __func__, __VA_ARGS__) #define uiprivImplBug(...) uiprivDoImplBug(__FILE__, uiprivMacro_ns(__LINE__), uiprivMacro__func__, __VA_ARGS__)
extern void _userbug(const char *file, const char *line, const char *func, const char *format, ...); extern void uiprivDoUserBug(const char *file, const char *line, const char *func, const char *format, ...);
#define userbug(...) _userbug(__FILE__, _ns(__LINE__), __func__, __VA_ARGS__) #define uiprivUserBug(...) uiprivDoUserBug(__FILE__, uiprivMacro_ns(__LINE__), uiprivMacro__func__, __VA_ARGS__)
// control.c // control.c
extern uiControl *newControl(size_t size, uint32_t OSsig, uint32_t typesig, const char *typenamestr); extern uiControl *newControl(size_t size, uint32_t OSsig, uint32_t typesig, const char *typenamestr);

View File

@ -4,5 +4,5 @@
void uiUserBugCannotSetParentOnToplevel(const char *type) void uiUserBugCannotSetParentOnToplevel(const char *type)
{ {
userbug("You cannot make a %s a child of another uiControl,", type); uiprivUserBug("You cannot make a %s a child of another uiControl,", type);
} }

View File

@ -37,7 +37,7 @@ void uninitAlloc(void)
ptr = [v pointerValue]; ptr = [v pointerValue];
[str appendString:[NSString stringWithFormat:@"%p %s\n", ptr, *TYPE(ptr)]]; [str appendString:[NSString stringWithFormat:@"%p %s\n", ptr, *TYPE(ptr)]];
} }
userbug("Some data was leaked; either you left a uiControl lying around or there's a bug in libui itself. Leaked data:\n%s", [str UTF8String]); uiprivUserBug("Some data was leaked; either you left a uiControl lying around or there's a bug in libui itself. Leaked data:\n%s", [str UTF8String]);
[str release]; [str release];
} }
@ -82,7 +82,7 @@ void *uiprivRealloc(void *p, size_t new, const char *type)
void uiprivFree(void *p) void uiprivFree(void *p)
{ {
if (p == NULL) if (p == NULL)
implbug("attempt to uiprivFree(NULL)"); uiprivImplBug("attempt to uiprivFree(NULL)");
p = BASE(p); p = BASE(p);
free(p); free(p);
[allocations removeObject:[NSValue valueWithPointer:p]]; [allocations removeObject:[NSValue valueWithPointer:p]];

View File

@ -390,7 +390,7 @@ int sendAreaEvents(NSEvent *e)
void uiAreaSetSize(uiArea *a, int width, int height) void uiAreaSetSize(uiArea *a, int width, int height)
{ {
if (!a->scrolling) if (!a->scrolling)
userbug("You cannot call uiAreaSetSize() on a non-scrolling uiArea. (area: %p)", a); uiprivUserBug("You cannot call uiAreaSetSize() on a non-scrolling uiArea. (area: %p)", a);
[a->area setScrollingSize:NSMakeSize(width, height)]; [a->area setScrollingSize:NSMakeSize(width, height)];
} }
@ -402,7 +402,7 @@ void uiAreaQueueRedrawAll(uiArea *a)
void uiAreaScrollTo(uiArea *a, double x, double y, double width, double height) void uiAreaScrollTo(uiArea *a, double x, double y, double width, double height)
{ {
if (!a->scrolling) if (!a->scrolling)
userbug("You cannot call uiAreaScrollTo() on a non-scrolling uiArea. (area: %p)", a); uiprivUserBug("You cannot call uiAreaScrollTo() on a non-scrolling uiArea. (area: %p)", a);
[a->area scrollRectToVisible:NSMakeRect(x, y, width, height)]; [a->area scrollRectToVisible:NSMakeRect(x, y, width, height)];
// don't worry about the return value; it just says whether scrolling was needed // don't worry about the return value; it just says whether scrolling was needed
} }

View File

@ -428,7 +428,7 @@ void uiBoxAppend(uiBox *b, uiControl *c, int stretchy)
// LONGTERM on other platforms // LONGTERM on other platforms
// or at leat allow this and implicitly turn it into a spacer // or at leat allow this and implicitly turn it into a spacer
if (c == NULL) if (c == NULL)
userbug("You cannot add NULL to a uiBox."); uiprivUserBug("You cannot add NULL to a uiBox.");
[b->view append:c stretchy:stretchy]; [b->view append:c stretchy:stretchy];
} }

View File

@ -3,7 +3,7 @@
// LONGTERM don't halt on release builds // LONGTERM don't halt on release builds
void realbug(const char *file, const char *line, const char *func, const char *prefix, const char *format, va_list ap) void uiprivRealBug(const char *file, const char *line, const char *func, const char *prefix, const char *format, va_list ap)
{ {
NSMutableString *str; NSMutableString *str;
NSString *formatted; NSString *formatted;

View File

@ -27,7 +27,7 @@ void uiDrawFreePath(uiDrawPath *p)
void uiDrawPathNewFigure(uiDrawPath *p, double x, double y) void uiDrawPathNewFigure(uiDrawPath *p, double x, double y)
{ {
if (p->ended) if (p->ended)
userbug("You cannot call uiDrawPathNewFigure() on a uiDrawPath that has already been ended. (path; %p)", p); uiprivUserBug("You cannot call uiDrawPathNewFigure() on a uiDrawPath that has already been ended. (path; %p)", p);
CGPathMoveToPoint(p->path, NULL, x, y); CGPathMoveToPoint(p->path, NULL, x, y);
} }
@ -37,7 +37,7 @@ void uiDrawPathNewFigureWithArc(uiDrawPath *p, double xCenter, double yCenter, d
double startx, starty; double startx, starty;
if (p->ended) if (p->ended)
userbug("You cannot call uiDrawPathNewFigureWithArc() on a uiDrawPath that has already been ended. (path; %p)", p); uiprivUserBug("You cannot call uiDrawPathNewFigureWithArc() on a uiDrawPath that has already been ended. (path; %p)", p);
sinStart = sin(startAngle); sinStart = sin(startAngle);
cosStart = cos(startAngle); cosStart = cos(startAngle);
startx = xCenter + radius * cosStart; startx = xCenter + radius * cosStart;
@ -50,7 +50,7 @@ void uiDrawPathLineTo(uiDrawPath *p, double x, double y)
{ {
// TODO refine this to require being in a path // TODO refine this to require being in a path
if (p->ended) if (p->ended)
implbug("attempt to add line to ended path in uiDrawPathLineTo()"); uiprivImplBug("attempt to add line to ended path in uiDrawPathLineTo()");
CGPathAddLineToPoint(p->path, NULL, x, y); CGPathAddLineToPoint(p->path, NULL, x, y);
} }
@ -60,7 +60,7 @@ void uiDrawPathArcTo(uiDrawPath *p, double xCenter, double yCenter, double radiu
// TODO likewise // TODO likewise
if (p->ended) if (p->ended)
implbug("attempt to add arc to ended path in uiDrawPathArcTo()"); uiprivImplBug("attempt to add arc to ended path in uiDrawPathArcTo()");
if (sweep > 2 * uiPi) if (sweep > 2 * uiPi)
sweep = 2 * uiPi; sweep = 2 * uiPi;
cw = false; cw = false;
@ -77,7 +77,7 @@ void uiDrawPathBezierTo(uiDrawPath *p, double c1x, double c1y, double c2x, doubl
{ {
// TODO likewise // TODO likewise
if (p->ended) if (p->ended)
implbug("attempt to add bezier to ended path in uiDrawPathBezierTo()"); uiprivImplBug("attempt to add bezier to ended path in uiDrawPathBezierTo()");
CGPathAddCurveToPoint(p->path, NULL, CGPathAddCurveToPoint(p->path, NULL,
c1x, c1y, c1x, c1y,
c2x, c2y, c2x, c2y,
@ -88,14 +88,14 @@ void uiDrawPathCloseFigure(uiDrawPath *p)
{ {
// TODO likewise // TODO likewise
if (p->ended) if (p->ended)
implbug("attempt to close figure of ended path in uiDrawPathCloseFigure()"); uiprivImplBug("attempt to close figure of ended path in uiDrawPathCloseFigure()");
CGPathCloseSubpath(p->path); CGPathCloseSubpath(p->path);
} }
void uiDrawPathAddRectangle(uiDrawPath *p, double x, double y, double width, double height) void uiDrawPathAddRectangle(uiDrawPath *p, double x, double y, double width, double height)
{ {
if (p->ended) if (p->ended)
userbug("You cannot call uiDrawPathAddRectangle() on a uiDrawPath that has already been ended. (path; %p)", p); uiprivUserBug("You cannot call uiDrawPathAddRectangle() on a uiDrawPath that has already been ended. (path; %p)", p);
CGPathAddRect(p->path, NULL, CGRectMake(x, y, width, height)); CGPathAddRect(p->path, NULL, CGRectMake(x, y, width, height));
} }
@ -132,7 +132,7 @@ void uiDrawStroke(uiDrawContext *c, uiDrawPath *path, uiDrawBrush *b, uiDrawStro
uiDrawPath p2; uiDrawPath p2;
if (!path->ended) if (!path->ended)
userbug("You cannot call uiDrawStroke() on a uiDrawPath that has not been ended. (path: %p)", path); uiprivUserBug("You cannot call uiDrawStroke() on a uiDrawPath that has not been ended. (path: %p)", path);
switch (p->Cap) { switch (p->Cap) {
case uiDrawLineCapFlat: case uiDrawLineCapFlat:
@ -280,7 +280,7 @@ static void fillGradient(CGContextRef ctxt, uiDrawPath *p, uiDrawBrush *b)
void uiDrawFill(uiDrawContext *c, uiDrawPath *path, uiDrawBrush *b) void uiDrawFill(uiDrawContext *c, uiDrawPath *path, uiDrawBrush *b)
{ {
if (!path->ended) if (!path->ended)
userbug("You cannot call uiDrawStroke() on a uiDrawPath that has not been ended. (path: %p)", path); uiprivUserBug("You cannot call uiDrawStroke() on a uiDrawPath that has not been ended. (path: %p)", path);
CGContextAddPath(c->c, (CGPathRef) (path->path)); CGContextAddPath(c->c, (CGPathRef) (path->path));
switch (b->Type) { switch (b->Type) {
case uiDrawBrushTypeSolid: case uiDrawBrushTypeSolid:
@ -294,7 +294,7 @@ void uiDrawFill(uiDrawContext *c, uiDrawPath *path, uiDrawBrush *b)
// TODO // TODO
return; return;
} }
userbug("Unknown brush type %d passed to uiDrawFill().", b->Type); uiprivUserBug("Unknown brush type %d passed to uiDrawFill().", b->Type);
} }
static void m2c(uiDrawMatrix *m, CGAffineTransform *c) static void m2c(uiDrawMatrix *m, CGAffineTransform *c)
@ -425,7 +425,7 @@ void uiDrawTransform(uiDrawContext *c, uiDrawMatrix *m)
void uiDrawClip(uiDrawContext *c, uiDrawPath *path) void uiDrawClip(uiDrawContext *c, uiDrawPath *path)
{ {
if (!path->ended) if (!path->ended)
userbug("You cannot call uiDrawCilp() on a uiDrawPath that has not been ended. (path: %p)", path); uiprivUserBug("You cannot call uiDrawCilp() on a uiDrawPath that has not been ended. (path: %p)", path);
CGContextAddPath(c->c, (CGPathRef) (path->path)); CGContextAddPath(c->c, (CGPathRef) (path->path));
switch (path->fillMode) { switch (path->fillMode) {
case uiDrawFillModeWinding: case uiDrawFillModeWinding:

View File

@ -530,7 +530,7 @@ void uiFormAppend(uiForm *f, const char *label, uiControl *c, int stretchy)
// LONGTERM on other platforms // LONGTERM on other platforms
// or at leat allow this and implicitly turn it into a spacer // or at leat allow this and implicitly turn it into a spacer
if (c == NULL) if (c == NULL)
userbug("You cannot add NULL to a uiForm."); uiprivUserBug("You cannot add NULL to a uiForm.");
[f->view append:toNSString(label) c:c stretchy:stretchy]; [f->view append:toNSString(label) c:c stretchy:stretchy];
} }

View File

@ -574,7 +574,7 @@ struct uiGrid {
break; break;
} }
if (!found) if (!found)
userbug("Existing control %p is not in grid %p; you cannot add other controls next to it", c, self->g); uiprivUserBug("Existing control %p is not in grid %p; you cannot add other controls next to it", c, self->g);
switch (at) { switch (at) {
case uiAtLeading: case uiAtLeading:
@ -742,9 +742,9 @@ static gridChild *toChild(uiControl *c, int xspan, int yspan, int hexpand, uiAli
gridChild *gc; gridChild *gc;
if (xspan < 0) if (xspan < 0)
userbug("You cannot have a negative xspan in a uiGrid cell."); uiprivUserBug("You cannot have a negative xspan in a uiGrid cell.");
if (yspan < 0) if (yspan < 0)
userbug("You cannot have a negative yspan in a uiGrid cell."); uiprivUserBug("You cannot have a negative yspan in a uiGrid cell.");
gc = [gridChild new]; gc = [gridChild new];
gc.xspan = xspan; gc.xspan = xspan;
gc.yspan = yspan; gc.yspan = yspan;
@ -763,7 +763,7 @@ void uiGridAppend(uiGrid *g, uiControl *c, int left, int top, int xspan, int ysp
// LONGTERM on other platforms // LONGTERM on other platforms
// or at leat allow this and implicitly turn it into a spacer // or at leat allow this and implicitly turn it into a spacer
if (c == NULL) if (c == NULL)
userbug("You cannot add NULL to a uiGrid."); uiprivUserBug("You cannot add NULL to a uiGrid.");
gc = toChild(c, xspan, yspan, hexpand, halign, vexpand, valign, g); gc = toChild(c, xspan, yspan, hexpand, halign, vexpand, valign, g);
gc.left = left; gc.left = left;
gc.top = top; gc.top = top;

View File

@ -57,7 +57,7 @@ static BOOL stepsIsRunning;
NSEvent *e; NSEvent *e;
if (!canQuit) if (!canQuit)
implbug("call to [NSApp terminate:] when not ready to terminate; definitely contact andlabs"); uiprivImplBug("call to [NSApp terminate:] when not ready to terminate; definitely contact andlabs");
[realNSApp() stop:realNSApp()]; [realNSApp() stop:realNSApp()];
// stop: won't register until another event has passed; let's synthesize one // stop: won't register until another event has passed; let's synthesize one
@ -139,9 +139,8 @@ const char *uiInit(uiInitOptions *o)
void uiUninit(void) void uiUninit(void)
{ {
if (!globalPool) { if (!globalPool)
userbug("You must call uiInit() first!"); uiprivUserBug("You must call uiInit() first!");
}
[globalPool release]; [globalPool release];
@autoreleasepool { @autoreleasepool {

View File

@ -22,7 +22,7 @@ struct mapTable *newMap(void)
void mapDestroy(struct mapTable *m) void mapDestroy(struct mapTable *m)
{ {
if ([m->m count] != 0) if ([m->m count] != 0)
implbug("attempt to destroy map with items inside"); uiprivImplBug("attempt to destroy map with items inside");
[m->m release]; [m->m release];
uiprivFree(m); uiprivFree(m);
} }

View File

@ -80,17 +80,17 @@ static void mapItemReleaser(void *key, void *value)
switch (smi->type) { switch (smi->type) {
case typeQuit: case typeQuit:
if (self->hasQuit) if (self->hasQuit)
userbug("You can't have multiple Quit menu items in one program."); uiprivUserBug("You can't have multiple Quit menu items in one program.");
self->hasQuit = YES; self->hasQuit = YES;
break; break;
case typePreferences: case typePreferences:
if (self->hasPreferences) if (self->hasPreferences)
userbug("You can't have multiple Preferences menu items in one program."); uiprivUserBug("You can't have multiple Preferences menu items in one program.");
self->hasPreferences = YES; self->hasPreferences = YES;
break; break;
case typeAbout: case typeAbout:
if (self->hasAbout) if (self->hasAbout)
userbug("You can't have multiple About menu items in one program."); uiprivUserBug("You can't have multiple About menu items in one program.");
self->hasAbout = YES; self->hasAbout = YES;
break; break;
} }
@ -212,7 +212,7 @@ void uiMenuItemDisable(uiMenuItem *item)
void uiMenuItemOnClicked(uiMenuItem *item, void (*f)(uiMenuItem *, uiWindow *, void *), void *data) void uiMenuItemOnClicked(uiMenuItem *item, void (*f)(uiMenuItem *, uiWindow *, void *), void *data)
{ {
if (item->type == typeQuit) if (item->type == typeQuit)
userbug("You can't call uiMenuItemOnClicked() on a Quit item; use uiOnShouldQuit() instead."); uiprivUserBug("You can't call uiMenuItemOnClicked() on a Quit item; use uiOnShouldQuit() instead.");
item->onClicked = f; item->onClicked = f;
item->onClickedData = data; item->onClickedData = data;
} }
@ -239,7 +239,7 @@ static uiMenuItem *newItem(uiMenu *m, int type, const char *name)
uiMenuItem *item; uiMenuItem *item;
if (menusFinalized) if (menusFinalized)
userbug("You can't create a new menu item after menus have been finalized."); uiprivUserBug("You can't create a new menu item after menus have been finalized.");
item = uiprivNew(uiMenuItem); item = uiprivNew(uiMenuItem);
@ -315,7 +315,7 @@ uiMenu *uiNewMenu(const char *name)
uiMenu *m; uiMenu *m;
if (menusFinalized) if (menusFinalized)
userbug("You can't create a new menu after menus have been finalized."); uiprivUserBug("You can't create a new menu after menus have been finalized.");
if (menus == nil) if (menus == nil)
menus = [NSMutableArray new]; menus = [NSMutableArray new];

View File

@ -48,7 +48,7 @@ void uiProgressBarSetValue(uiProgressBar *p, int value)
} }
if (value < 0 || value > 100) if (value < 0 || value > 100)
userbug("Value %d out of range for a uiProgressBar.", value); uiprivUserBug("Value %d out of range for a uiProgressBar.", value);
// on 10.8 there's an animation when the progress bar increases, just like with Aero // on 10.8 there's an animation when the progress bar increases, just like with Aero
if (value == 100) { if (value == 100) {

View File

@ -39,7 +39,7 @@ void uninitAlloc(void)
return; return;
} }
g_ptr_array_foreach(allocations, uninitComplain, &str); g_ptr_array_foreach(allocations, uninitComplain, &str);
userbug("Some data was leaked; either you left a uiControl lying around or there's a bug in libui itself. Leaked data:\n%s", str); uiprivUserBug("Some data was leaked; either you left a uiControl lying around or there's a bug in libui itself. Leaked data:\n%s", str);
g_free(str); g_free(str);
} }
@ -68,7 +68,7 @@ void *uiprivRealloc(void *p, size_t new, const char *type)
memset(((uint8_t *) DATA(out)) + *s, 0, new - *s); memset(((uint8_t *) DATA(out)) + *s, 0, new - *s);
*s = new; *s = new;
if (g_ptr_array_remove(allocations, p) == FALSE) if (g_ptr_array_remove(allocations, p) == FALSE)
implbug("%p not found in allocations array in uiprivRealloc()", p); uiprivImplBug("%p not found in allocations array in uiprivRealloc()", p);
g_ptr_array_add(allocations, out); g_ptr_array_add(allocations, out);
return DATA(out); return DATA(out);
} }
@ -76,9 +76,9 @@ void *uiprivRealloc(void *p, size_t new, const char *type)
void uiprivFree(void *p) void uiprivFree(void *p)
{ {
if (p == NULL) if (p == NULL)
implbug("attempt to uiprivFree(NULL)"); uiprivImplBug("attempt to uiprivFree(NULL)");
p = BASE(p); p = BASE(p);
g_free(p); g_free(p);
if (g_ptr_array_remove(allocations, p) == FALSE) if (g_ptr_array_remove(allocations, p) == FALSE)
implbug("%p not found in allocations array in uiprivFree()", p); uiprivImplBug("%p not found in allocations array in uiprivFree()", p);
} }

View File

@ -499,7 +499,7 @@ uiUnixControlAllDefaults(uiArea)
void uiAreaSetSize(uiArea *a, int width, int height) void uiAreaSetSize(uiArea *a, int width, int height)
{ {
if (!a->scrolling) if (!a->scrolling)
userbug("You cannot call uiAreaSetSize() on a non-scrolling uiArea. (area: %p)", a); uiprivUserBug("You cannot call uiAreaSetSize() on a non-scrolling uiArea. (area: %p)", a);
a->scrollWidth = width; a->scrollWidth = width;
a->scrollHeight = height; a->scrollHeight = height;
gtk_widget_queue_resize(a->areaWidget); gtk_widget_queue_resize(a->areaWidget);
@ -521,7 +521,7 @@ void uiAreaBeginUserWindowMove(uiArea *a)
GtkWidget *toplevel; GtkWidget *toplevel;
if (a->dragevent == NULL) if (a->dragevent == NULL)
userbug("cannot call uiAreaBeginUserWindowMove() outside of a Mouse() with Down != 0"); uiprivUserBug("cannot call uiAreaBeginUserWindowMove() outside of a Mouse() with Down != 0");
// TODO don't we have a libui function for this? did I scrap it? // TODO don't we have a libui function for this? did I scrap it?
// TODO widget or areaWidget? // TODO widget or areaWidget?
toplevel = gtk_widget_get_toplevel(a->widget); toplevel = gtk_widget_get_toplevel(a->widget);
@ -561,7 +561,7 @@ void uiAreaBeginUserWindowResize(uiArea *a, uiWindowResizeEdge edge)
GtkWidget *toplevel; GtkWidget *toplevel;
if (a->dragevent == NULL) if (a->dragevent == NULL)
userbug("cannot call uiAreaBeginUserWindowResize() outside of a Mouse() with Down != 0"); uiprivUserBug("cannot call uiAreaBeginUserWindowResize() outside of a Mouse() with Down != 0");
// TODO don't we have a libui function for this? did I scrap it? // TODO don't we have a libui function for this? did I scrap it?
// TODO widget or areaWidget? // TODO widget or areaWidget?
toplevel = gtk_widget_get_toplevel(a->widget); toplevel = gtk_widget_get_toplevel(a->widget);

View File

@ -3,7 +3,7 @@
// LONGTERM don't halt on release builds // LONGTERM don't halt on release builds
void realbug(const char *file, const char *line, const char *func, const char *prefix, const char *format, va_list ap) void uiprivRealBug(const char *file, const char *line, const char *func, const char *prefix, const char *format, va_list ap)
{ {
char *a, *b; char *a, *b;

View File

@ -39,7 +39,7 @@ static cairo_pattern_t *mkbrush(uiDrawBrush *b)
// case uiDrawBrushTypeImage: // case uiDrawBrushTypeImage:
} }
if (cairo_pattern_status(pat) != CAIRO_STATUS_SUCCESS) if (cairo_pattern_status(pat) != CAIRO_STATUS_SUCCESS)
implbug("error creating pattern in mkbrush(): %s", uiprivImplBug("error creating pattern in mkbrush(): %s",
cairo_status_to_string(cairo_pattern_status(pat))); cairo_status_to_string(cairo_pattern_status(pat)));
switch (b->Type) { switch (b->Type) {
case uiDrawBrushTypeLinearGradient: case uiDrawBrushTypeLinearGradient:

View File

@ -43,7 +43,7 @@ void uiDrawFreePath(uiDrawPath *p)
static void add(uiDrawPath *p, struct piece *piece) static void add(uiDrawPath *p, struct piece *piece)
{ {
if (p->ended) if (p->ended)
userbug("You cannot modify a uiDrawPath that has been ended. (path: %p)", p); uiprivUserBug("You cannot modify a uiDrawPath that has been ended. (path: %p)", p);
g_array_append_vals(p->pieces, piece, 1); g_array_append_vals(p->pieces, piece, 1);
} }
@ -145,7 +145,7 @@ void runPath(uiDrawPath *p, cairo_t *cr)
void (*arc)(cairo_t *, double, double, double, double, double); void (*arc)(cairo_t *, double, double, double, double, double);
if (!p->ended) if (!p->ended)
userbug("You cannot draw with a uiDrawPath that has not been ended. (path: %p)", p); uiprivUserBug("You cannot draw with a uiDrawPath that has not been ended. (path: %p)", p);
cairo_new_path(cr); cairo_new_path(cr);
for (i = 0; i < p->pieces->len; i++) { for (i = 0; i < p->pieces->len; i++) {
piece = &g_array_index(p->pieces, struct piece, i); piece = &g_array_index(p->pieces, struct piece, i);

View File

@ -109,7 +109,7 @@ void uiMenuItemDisable(uiMenuItem *item)
void uiMenuItemOnClicked(uiMenuItem *item, void (*f)(uiMenuItem *, uiWindow *, void *), void *data) void uiMenuItemOnClicked(uiMenuItem *item, void (*f)(uiMenuItem *, uiWindow *, void *), void *data)
{ {
if (item->type == typeQuit) if (item->type == typeQuit)
userbug("You cannot call uiMenuItemOnClicked() on a Quit item; use uiOnShouldQuit() instead."); uiprivUserBug("You cannot call uiMenuItemOnClicked() on a Quit item; use uiOnShouldQuit() instead.");
item->onClicked = f; item->onClicked = f;
item->onClickedData = data; item->onClickedData = data;
} }
@ -135,7 +135,7 @@ static uiMenuItem *newItem(uiMenu *m, int type, const char *name)
uiMenuItem *item; uiMenuItem *item;
if (menusFinalized) if (menusFinalized)
userbug("You cannot create a new menu item after menus have been finalized."); uiprivUserBug("You cannot create a new menu item after menus have been finalized.");
item = uiprivNew(uiMenuItem); item = uiprivNew(uiMenuItem);
@ -196,7 +196,7 @@ uiMenuItem *uiMenuAppendCheckItem(uiMenu *m, const char *name)
uiMenuItem *uiMenuAppendQuitItem(uiMenu *m) uiMenuItem *uiMenuAppendQuitItem(uiMenu *m)
{ {
if (hasQuit) if (hasQuit)
userbug("You cannot have multiple Quit menu items in the same program."); uiprivUserBug("You cannot have multiple Quit menu items in the same program.");
hasQuit = TRUE; hasQuit = TRUE;
newItem(m, typeSeparator, NULL); newItem(m, typeSeparator, NULL);
return newItem(m, typeQuit, NULL); return newItem(m, typeQuit, NULL);
@ -205,7 +205,7 @@ uiMenuItem *uiMenuAppendQuitItem(uiMenu *m)
uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m) uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m)
{ {
if (hasPreferences) if (hasPreferences)
userbug("You cannot have multiple Preferences menu items in the same program."); uiprivUserBug("You cannot have multiple Preferences menu items in the same program.");
hasPreferences = TRUE; hasPreferences = TRUE;
newItem(m, typeSeparator, NULL); newItem(m, typeSeparator, NULL);
return newItem(m, typePreferences, NULL); return newItem(m, typePreferences, NULL);
@ -214,7 +214,7 @@ uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m)
uiMenuItem *uiMenuAppendAboutItem(uiMenu *m) uiMenuItem *uiMenuAppendAboutItem(uiMenu *m)
{ {
if (hasAbout) if (hasAbout)
userbug("You cannot have multiple About menu items in the same program."); uiprivUserBug("You cannot have multiple About menu items in the same program.");
hasAbout = TRUE; hasAbout = TRUE;
newItem(m, typeSeparator, NULL); newItem(m, typeSeparator, NULL);
return newItem(m, typeAbout, NULL); return newItem(m, typeAbout, NULL);
@ -230,7 +230,7 @@ uiMenu *uiNewMenu(const char *name)
uiMenu *m; uiMenu *m;
if (menusFinalized) if (menusFinalized)
userbug("You cannot create a new menu after menus have been finalized."); uiprivUserBug("You cannot create a new menu after menus have been finalized.");
if (menus == NULL) if (menus == NULL)
menus = g_array_new(FALSE, TRUE, sizeof (uiMenu *)); menus = g_array_new(FALSE, TRUE, sizeof (uiMenu *));
@ -308,7 +308,7 @@ static void freeMenuItem(GtkWidget *widget, gpointer data)
item = g_array_index(fmi->items, uiMenuItem *, fmi->i); item = g_array_index(fmi->items, uiMenuItem *, fmi->i);
w = (struct menuItemWindow *) g_hash_table_lookup(item->windows, widget); w = (struct menuItemWindow *) g_hash_table_lookup(item->windows, widget);
if (g_hash_table_remove(item->windows, widget) == FALSE) if (g_hash_table_remove(item->windows, widget) == FALSE)
implbug("GtkMenuItem %p not in menu item's item/window map", widget); uiprivImplBug("GtkMenuItem %p not in menu item's item/window map", widget);
uiprivFree(w); uiprivFree(w);
fmi->i++; fmi->i++;
} }
@ -353,8 +353,8 @@ void uninitMenus(void)
for (j = 0; j < m->items->len; j++) { for (j = 0; j < m->items->len; j++) {
item = g_array_index(m->items, uiMenuItem *, j); item = g_array_index(m->items, uiMenuItem *, j);
if (g_hash_table_size(item->windows) != 0) if (g_hash_table_size(item->windows) != 0)
// TODO is this really a userbug()? // TODO is this really a uiprivUserBug()?
implbug("menu item %p (%s) still has uiWindows attached; did you forget to destroy some windows?", item, item->name); uiprivImplBug("menu item %p (%s) still has uiWindows attached; did you forget to destroy some windows?", item, item->name);
g_free(item->name); g_free(item->name);
g_hash_table_destroy(item->windows); g_hash_table_destroy(item->windows);
uiprivFree(item); uiprivFree(item);

View File

@ -53,7 +53,7 @@ void uiProgressBarSetValue(uiProgressBar *p, int value)
} }
if (value < 0 || value > 100) if (value < 0 || value > 100)
userbug("Value %d is out of range for a uiProgressBar.", value); uiprivUserBug("Value %d is out of range for a uiProgressBar.", value);
gtk_progress_bar_set_fraction(p->pbar, ((gdouble) value) / 100); gtk_progress_bar_set_fraction(p->pbar, ((gdouble) value) / 100);
} }

View File

@ -22,7 +22,7 @@ void uninitAlloc(void)
// note the void * cast; otherwise it'll be treated as a string // note the void * cast; otherwise it'll be treated as a string
oss << (void *) (alloc.first) << " " << types[alloc.second] << "\n"; oss << (void *) (alloc.first) << " " << types[alloc.second] << "\n";
ossstr = oss.str(); ossstr = oss.str();
userbug("Some data was leaked; either you left a uiControl lying around or there's a bug in libui itself. Leaked data:\n%s", ossstr.c_str()); uiprivUserBug("Some data was leaked; either you left a uiControl lying around or there's a bug in libui itself. Leaked data:\n%s", ossstr.c_str());
} }
#define rawBytes(pa) (&((*pa)[0])) #define rawBytes(pa) (&((*pa)[0]))
@ -57,7 +57,7 @@ void uiprivFree(void *_p)
uint8_t *p = (uint8_t *) _p; uint8_t *p = (uint8_t *) _p;
if (p == NULL) if (p == NULL)
implbug("attempt to uiprivFree(NULL)"); uiprivImplBug("attempt to uiprivFree(NULL)");
types.erase(heap[p]); types.erase(heap[p]);
delete heap[p]; delete heap[p];
heap.erase(p); heap.erase(p);

View File

@ -44,7 +44,7 @@ static WCHAR *expandYear(WCHAR *dts, int n)
if (*p == L'\'') if (*p == L'\'')
break; break;
if (*p == L'\0') if (*p == L'\0')
implbug("unterminated quote in system-provided locale date string in expandYear()"); uiprivImplBug("unterminated quote in system-provided locale date string in expandYear()");
*q++ = *p; *q++ = *p;
} }
// and fall through to copy the closing quote // and fall through to copy the closing quote

View File

@ -59,7 +59,7 @@ HRESULT _logHRESULT(debugargs, const WCHAR *s, HRESULT hr)
return hr; return hr;
} }
void realbug(const char *file, const char *line, const char *func, const char *prefix, const char *format, va_list ap) void uiprivRealBug(const char *file, const char *line, const char *func, const char *prefix, const char *format, va_list ap)
{ {
va_list ap2; va_list ap2;
char *msg; char *msg;

View File

@ -120,7 +120,7 @@ void freeContext(uiDrawContext *c)
c->currentClip->Release(); c->currentClip->Release();
if (c->states->size() != 0) if (c->states->size() != 0)
// TODO do this on other platforms // TODO do this on other platforms
userbug("You did not balance uiDrawSave() and uiDrawRestore() calls."); uiprivUserBug("You did not balance uiDrawSave() and uiDrawRestore() calls.");
delete c->states; delete c->states;
uiprivFree(c); uiprivFree(c);
} }
@ -253,7 +253,7 @@ static ID2D1Brush *makeBrush(uiDrawBrush *b, ID2D1RenderTarget *rt)
} }
// TODO do this on all platforms // TODO do this on all platforms
userbug("Invalid brush type %d given to drawing operation.", b->Type); uiprivUserBug("Invalid brush type %d given to drawing operation.", b->Type);
// TODO dummy brush? // TODO dummy brush?
return NULL; // make compiler happy return NULL; // make compiler happy
} }

View File

@ -242,6 +242,6 @@ void uiDrawPathEnd(uiDrawPath *p)
ID2D1PathGeometry *pathGeometry(uiDrawPath *p) ID2D1PathGeometry *pathGeometry(uiDrawPath *p)
{ {
if (p->sink != NULL) if (p->sink != NULL)
userbug("You cannot draw with a uiDrawPath that was not ended. (path: %p)", p); uiprivUserBug("You cannot draw with a uiDrawPath that was not ended. (path: %p)", p);
return p->path; return p->path;
} }

View File

@ -23,7 +23,7 @@ static std::map<HWND, struct handler> handlers;
void uiWindowsRegisterWM_COMMANDHandler(HWND hwnd, BOOL (*handler)(uiControl *, HWND, WORD, LRESULT *), uiControl *c) void uiWindowsRegisterWM_COMMANDHandler(HWND hwnd, BOOL (*handler)(uiControl *, HWND, WORD, LRESULT *), uiControl *c)
{ {
if (handlers[hwnd].commandHandler != NULL) if (handlers[hwnd].commandHandler != NULL)
implbug("already registered a WM_COMMAND handler to window handle %p", hwnd); uiprivImplBug("already registered a WM_COMMAND handler to window handle %p", hwnd);
handlers[hwnd].commandHandler = handler; handlers[hwnd].commandHandler = handler;
handlers[hwnd].c = c; handlers[hwnd].c = c;
} }
@ -31,7 +31,7 @@ void uiWindowsRegisterWM_COMMANDHandler(HWND hwnd, BOOL (*handler)(uiControl *,
void uiWindowsRegisterWM_NOTIFYHandler(HWND hwnd, BOOL (*handler)(uiControl *, HWND, NMHDR *, LRESULT *), uiControl *c) void uiWindowsRegisterWM_NOTIFYHandler(HWND hwnd, BOOL (*handler)(uiControl *, HWND, NMHDR *, LRESULT *), uiControl *c)
{ {
if (handlers[hwnd].notifyHandler != NULL) if (handlers[hwnd].notifyHandler != NULL)
implbug("already registered a WM_NOTIFY handler to window handle %p", hwnd); uiprivImplBug("already registered a WM_NOTIFY handler to window handle %p", hwnd);
handlers[hwnd].notifyHandler = handler; handlers[hwnd].notifyHandler = handler;
handlers[hwnd].c = c; handlers[hwnd].c = c;
} }
@ -39,7 +39,7 @@ void uiWindowsRegisterWM_NOTIFYHandler(HWND hwnd, BOOL (*handler)(uiControl *, H
void uiWindowsRegisterWM_HSCROLLHandler(HWND hwnd, BOOL (*handler)(uiControl *, HWND, WORD, LRESULT *), uiControl *c) void uiWindowsRegisterWM_HSCROLLHandler(HWND hwnd, BOOL (*handler)(uiControl *, HWND, WORD, LRESULT *), uiControl *c)
{ {
if (handlers[hwnd].hscrollHandler != NULL) if (handlers[hwnd].hscrollHandler != NULL)
implbug("already registered a WM_HSCROLL handler to window handle %p", hwnd); uiprivImplBug("already registered a WM_HSCROLL handler to window handle %p", hwnd);
handlers[hwnd].hscrollHandler = handler; handlers[hwnd].hscrollHandler = handler;
handlers[hwnd].c = c; handlers[hwnd].c = c;
} }
@ -47,21 +47,21 @@ void uiWindowsRegisterWM_HSCROLLHandler(HWND hwnd, BOOL (*handler)(uiControl *,
void uiWindowsUnregisterWM_COMMANDHandler(HWND hwnd) void uiWindowsUnregisterWM_COMMANDHandler(HWND hwnd)
{ {
if (handlers[hwnd].commandHandler == NULL) if (handlers[hwnd].commandHandler == NULL)
implbug("window handle %p not registered to receive WM_COMMAND events", hwnd); uiprivImplBug("window handle %p not registered to receive WM_COMMAND events", hwnd);
handlers[hwnd].commandHandler = NULL; handlers[hwnd].commandHandler = NULL;
} }
void uiWindowsUnregisterWM_NOTIFYHandler(HWND hwnd) void uiWindowsUnregisterWM_NOTIFYHandler(HWND hwnd)
{ {
if (handlers[hwnd].notifyHandler == NULL) if (handlers[hwnd].notifyHandler == NULL)
implbug("window handle %p not registered to receive WM_NOTIFY events", hwnd); uiprivImplBug("window handle %p not registered to receive WM_NOTIFY events", hwnd);
handlers[hwnd].notifyHandler = NULL; handlers[hwnd].notifyHandler = NULL;
} }
void uiWindowsUnregisterWM_HSCROLLHandler(HWND hwnd) void uiWindowsUnregisterWM_HSCROLLHandler(HWND hwnd)
{ {
if (handlers[hwnd].hscrollHandler == NULL) if (handlers[hwnd].hscrollHandler == NULL)
implbug("window handle %p not registered to receive WM_HSCROLL events", hwnd); uiprivImplBug("window handle %p not registered to receive WM_HSCROLL events", hwnd);
handlers[hwnd].hscrollHandler = NULL; handlers[hwnd].hscrollHandler = NULL;
} }
@ -131,14 +131,14 @@ static std::map<HWND, bool> wininichanges;
void uiWindowsRegisterReceiveWM_WININICHANGE(HWND hwnd) void uiWindowsRegisterReceiveWM_WININICHANGE(HWND hwnd)
{ {
if (wininichanges[hwnd]) if (wininichanges[hwnd])
implbug("window handle %p already subscribed to receive WM_WINICHANGEs", hwnd); uiprivImplBug("window handle %p already subscribed to receive WM_WINICHANGEs", hwnd);
wininichanges[hwnd] = true; wininichanges[hwnd] = true;
} }
void uiWindowsUnregisterReceiveWM_WININICHANGE(HWND hwnd) void uiWindowsUnregisterReceiveWM_WININICHANGE(HWND hwnd)
{ {
if (!wininichanges[hwnd]) if (!wininichanges[hwnd])
implbug("window handle %p not registered to receive WM_WININICHANGEs", hwnd); uiprivImplBug("window handle %p not registered to receive WM_WININICHANGEs", hwnd);
wininichanges[hwnd] = false; wininichanges[hwnd] = false;
} }

View File

@ -562,9 +562,9 @@ static struct gridChild *toChild(uiControl *c, int xspan, int yspan, int hexpand
struct gridChild *gc; struct gridChild *gc;
if (xspan < 0) if (xspan < 0)
userbug("You cannot have a negative xspan in a uiGrid cell."); uiprivUserBug("You cannot have a negative xspan in a uiGrid cell.");
if (yspan < 0) if (yspan < 0)
userbug("You cannot have a negative yspan in a uiGrid cell."); uiprivUserBug("You cannot have a negative yspan in a uiGrid cell.");
gc = uiprivNew(struct gridChild); gc = uiprivNew(struct gridChild);
gc->c = c; gc->c = c;
gc->xspan = xspan; gc->xspan = xspan;

View File

@ -87,7 +87,7 @@ void uiMenuItemDisable(uiMenuItem *i)
void uiMenuItemOnClicked(uiMenuItem *i, void (*f)(uiMenuItem *, uiWindow *, void *), void *data) void uiMenuItemOnClicked(uiMenuItem *i, void (*f)(uiMenuItem *, uiWindow *, void *), void *data)
{ {
if (i->type == typeQuit) if (i->type == typeQuit)
userbug("You can not call uiMenuItemOnClicked() on a Quit item; use uiOnShouldQuit() instead."); uiprivUserBug("You can not call uiMenuItemOnClicked() on a Quit item; use uiOnShouldQuit() instead.");
i->onClicked = f; i->onClicked = f;
i->onClickedData = data; i->onClickedData = data;
} }
@ -111,7 +111,7 @@ static uiMenuItem *newItem(uiMenu *m, int type, const char *name)
uiMenuItem *item; uiMenuItem *item;
if (menusFinalized) if (menusFinalized)
userbug("You can not create a new menu item after menus have been finalized."); uiprivUserBug("You can not create a new menu item after menus have been finalized.");
if (m->len >= m->cap) { if (m->len >= m->cap) {
m->cap += grow; m->cap += grow;
@ -169,7 +169,7 @@ uiMenuItem *uiMenuAppendCheckItem(uiMenu *m, const char *name)
uiMenuItem *uiMenuAppendQuitItem(uiMenu *m) uiMenuItem *uiMenuAppendQuitItem(uiMenu *m)
{ {
if (hasQuit) if (hasQuit)
userbug("You can not have multiple Quit menu items in a program."); uiprivUserBug("You can not have multiple Quit menu items in a program.");
hasQuit = TRUE; hasQuit = TRUE;
newItem(m, typeSeparator, NULL); newItem(m, typeSeparator, NULL);
return newItem(m, typeQuit, NULL); return newItem(m, typeQuit, NULL);
@ -178,7 +178,7 @@ uiMenuItem *uiMenuAppendQuitItem(uiMenu *m)
uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m) uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m)
{ {
if (hasPreferences) if (hasPreferences)
userbug("You can not have multiple Preferences menu items in a program."); uiprivUserBug("You can not have multiple Preferences menu items in a program.");
hasPreferences = TRUE; hasPreferences = TRUE;
newItem(m, typeSeparator, NULL); newItem(m, typeSeparator, NULL);
return newItem(m, typePreferences, NULL); return newItem(m, typePreferences, NULL);
@ -187,8 +187,8 @@ uiMenuItem *uiMenuAppendPreferencesItem(uiMenu *m)
uiMenuItem *uiMenuAppendAboutItem(uiMenu *m) uiMenuItem *uiMenuAppendAboutItem(uiMenu *m)
{ {
if (hasAbout) if (hasAbout)
// TODO place these userbug strings in a header // TODO place these uiprivImplBug() and uiprivUserBug() strings in a header
userbug("You can not have multiple About menu items in a program."); uiprivUserBug("You can not have multiple About menu items in a program.");
hasAbout = TRUE; hasAbout = TRUE;
newItem(m, typeSeparator, NULL); newItem(m, typeSeparator, NULL);
return newItem(m, typeAbout, NULL); return newItem(m, typeAbout, NULL);
@ -204,7 +204,7 @@ uiMenu *uiNewMenu(const char *name)
uiMenu *m; uiMenu *m;
if (menusFinalized) if (menusFinalized)
userbug("You can not create a new menu after menus have been finalized."); uiprivUserBug("You can not create a new menu after menus have been finalized.");
if (len >= cap) { if (len >= cap) {
cap += grow; cap += grow;
menus = (uiMenu **) uiprivRealloc(menus, cap * sizeof (uiMenu *), "uiMenu *[]"); menus = (uiMenu **) uiprivRealloc(menus, cap * sizeof (uiMenu *), "uiMenu *[]");
@ -293,7 +293,7 @@ void runMenuEvent(WORD id, uiWindow *w)
} }
} }
// no match // no match
implbug("unknown menu ID %hu in runMenuEvent()", id); uiprivImplBug("unknown menu ID %hu in runMenuEvent()", id);
found: found:
// first toggle checkboxes, if any // first toggle checkboxes, if any
@ -316,7 +316,7 @@ static void freeMenu(uiMenu *m, HMENU submenu)
if (item->hmenus[j] == submenu) if (item->hmenus[j] == submenu)
break; break;
if (j >= item->len) if (j >= item->len)
implbug("submenu handle %p not found in freeMenu()", submenu); uiprivImplBug("submenu handle %p not found in freeMenu()", submenu);
for (; j < item->len - 1; j++) for (; j < item->len - 1; j++)
item->hmenus[j] = item->hmenus[j + 1]; item->hmenus[j] = item->hmenus[j + 1];
item->hmenus[j] = NULL; item->hmenus[j] = NULL;
@ -352,8 +352,8 @@ void uninitMenus(void)
for (j = 0; j < m->len; j++) { for (j = 0; j < m->len; j++) {
item = m->items[j]; item = m->items[j];
if (item->len != 0) if (item->len != 0)
// LONGTERM userbug()? // LONGTERM uiprivUserBug()?
implbug("menu item %p (%ws) still has uiWindows attached; did you forget to destroy some windows?", item, item->name); uiprivImplBug("menu item %p (%ws) still has uiWindows attached; did you forget to destroy some windows?", item, item->name);
if (item->name != NULL) if (item->name != NULL)
uiprivFree(item->name); uiprivFree(item->name);
if (item->hmenus != NULL) if (item->hmenus != NULL)

View File

@ -54,7 +54,7 @@ void uiProgressBarSetValue(uiProgressBar *p, int value)
} }
if (value < 0 || value > 100) if (value < 0 || value > 100)
userbug("Value %d is out of range for uiProgressBars.", value); uiprivUserBug("Value %d is out of range for uiProgressBars.", value);
if (value == 100) { // because we can't 101 if (value == 100) { // because we can't 101
SendMessageW(p->hwnd, PBM_SETRANGE32, 0, 101); SendMessageW(p->hwnd, PBM_SETRANGE32, 0, 101);