do not commit bad char* foo that breaks on !32 bit platforms

This commit is contained in:
Dana Jansens 2003-04-14 17:06:32 +00:00
parent 99fd65baf0
commit 3809fb37a5
2 changed files with 9 additions and 12 deletions

View file

@ -131,23 +131,21 @@ void prop_startup()
CREATE(openbox_premax, "_OPENBOX_PREMAX");
}
gboolean prop_get(Window win, Atom prop, Atom type, int size,
guchar **data, gulong num)
gboolean prop_get32(Window win, Atom prop, Atom type, gulong **data,gulong num)
{
gboolean ret = FALSE;
int res;
guchar *xdata = NULL;
gulong *xdata = NULL;
Atom ret_type;
int ret_size;
gulong ret_items, bytes_left;
long num32 = 32 / size * num; /* num in 32-bit elements */
res = XGetWindowProperty(ob_display, win, prop, 0l, num32,
res = XGetWindowProperty(ob_display, win, prop, 0l, num,
FALSE, type, &ret_type, &ret_size,
&ret_items, &bytes_left, &xdata);
&ret_items, &bytes_left, (guchar**)&xdata);
if (res == Success && ret_items && xdata) {
if (ret_size == size && ret_items >= num) {
*data = g_memdup(xdata, num * (size / 8));
if (ret_size == 32 && ret_items >= num) {
*data = g_memdup(xdata, num * sizeof(gulong));
ret = TRUE;
}
XFree(xdata);

View file

@ -139,8 +139,8 @@ Atoms prop_atoms;
void prop_startup();
gboolean prop_get(Window win, Atom prop, Atom type, int size,
guchar **data, gulong num);
gboolean prop_get32(Window win, Atom prop, Atom type,
gulong **data, gulong num);
gboolean prop_get_prealloc(Window win, Atom prop, Atom type, int size,
guchar *data, gulong num);
@ -201,8 +201,7 @@ void prop_message(Window about, Atom messagetype, long data0, long data1,
/* Get an amount of a 32-bit property into an array (which must be freed) */
#define PROP_GET32A(win, prop, type, value, num) \
(prop_get(win, prop_atoms.prop, prop_atoms.type, 32, \
(guchar**)&value, num))
(prop_get32(win, prop_atoms.prop, prop_atoms.type, (gulong**)&value, num))
/* Get an entire 32-bit property into an array (which must be freed) */
#define PROP_GET32U(win, prop, type, value, num) \