diff --git a/src/post_modules/GTK2/source/gdkcolormap.pre b/src/post_modules/GTK2/source/gdkcolormap.pre index 15386b3f8579427bd08f8aadbb5a44155b9bd5fe..935e493f7f23bade75c86cfe75bc0e99a58dc4bf 100644 --- a/src/post_modules/GTK2/source/gdkcolormap.pre +++ b/src/post_modules/GTK2/source/gdkcolormap.pre @@ -37,8 +37,17 @@ int alloc_colors(array(GDK2.Color) colors, int writeable, get_all_args("alloc_colors",args,"%A%i%i",&a,&wr,&best); if (a==NULL) Pike_error("Invalid array.\n"); - gc=(GdkColor *)xmalloc(sizeof(GdkColor)*a->size); - suc=(int *)xmalloc(sizeof(int)*a->size); + + gc=(GdkColor *)malloc(sizeof(GdkColor)*a->size); + suc=(int *)malloc(sizeof(int)*a->size); + if(!gc || !suc) + { + if(gc) free(gc); + SIMPLE_OUT_OF_MEMORY_ERROR("alloc_colors", + sizeof(GdkColor)*a->size + + sizeof(int)*a->size); + } + for (i=0; i<a->size; i++) { struct object *o; o=ITEM(a)[i].u.object; @@ -82,7 +91,7 @@ void free_colors(array(GDK2.Color) colors) get_all_args("free_colors",args,"%A",&a); if (a==NULL) Pike_error("Invalid array.\n"); - gc=(GdkColor *)xmalloc(sizeof(GdkColor)*a->size); + gc=(GdkColor *)xalloc(sizeof(GdkColor)*a->size); for (i=0; i<a->size; i++) { struct object *o; o=ITEM(a)[i].u.object; @@ -106,9 +115,9 @@ void free_colors(array(GDK2.Color) colors) GdkColor *gc; get_all_args("query_color",args,"%i",&pix); - pgtk2_pop_n_elems(args); - gc=(GdkColor *)xmalloc(sizeof(GdkColor)); + gc=(GdkColor *)xalloc(sizeof(GdkColor)); gdk_colormap_query_color(GDK_COLORMAP(THIS->obj),pix,gc); + pgtk2_pop_n_elems(args); push_gdkobject(gc,color); } } diff --git a/src/post_modules/GTK2/source/gdkdisplay.pre b/src/post_modules/GTK2/source/gdkdisplay.pre index 6ae183e6887b2ca4552ffd85d547604db6742c25..c984f74ec7afaf58da7c1cb1602f361255921a30 100644 --- a/src/post_modules/GTK2/source/gdkdisplay.pre +++ b/src/post_modules/GTK2/source/gdkdisplay.pre @@ -257,7 +257,7 @@ void store_clipboard(GDK2.Window clipboard_window, GdkAtom *targets; int n; - targets=xmalloc(a->size); + targets=xalloc(a->size); for (n=0; n<a->size; n++) targets[n]=get_gdkatom(ITEM(a)[n].u.object); gdk_display_store_clipboard(GDK_DISPLAY_OBJECT(THIS->obj), diff --git a/src/post_modules/GTK2/source/gdkscreen.pre b/src/post_modules/GTK2/source/gdkscreen.pre index cd29addc348223604e50974960e86dcc350defcb..bdb41d229b92c969405da75e0705783c551fdc84 100644 --- a/src/post_modules/GTK2/source/gdkscreen.pre +++ b/src/post_modules/GTK2/source/gdkscreen.pre @@ -231,7 +231,7 @@ int get_n_monitors(); GdkRectangle *gr; get_all_args("get_monitor_geometry",args,"%i",&a); - gr=(GdkRectangle *)xmalloc(sizeof(GdkRectangle)); + gr=(GdkRectangle *)xalloc(sizeof(GdkRectangle)); gdk_screen_get_monitor_geometry(GDK_SCREEN(THIS->obj),a,gr); pgtk2_pop_n_elems(args); push_gdkobject(gr,rectangle); diff --git a/src/post_modules/GTK2/source/gobject.pre b/src/post_modules/GTK2/source/gobject.pre index 83b3c521488e614f46b321217c683c4dac393fde..8f04f46a9762ebec31fe44e1e772bbe752ba4bc2 100644 --- a/src/post_modules/GTK2/source/gobject.pre +++ b/src/post_modules/GTK2/source/gobject.pre @@ -221,11 +221,13 @@ int new_signal(string name, array types, string return_type) } else { return_type=G_TYPE_POINTER; } - param_types=xmalloc(sizeof(GType)*a->size); + + param_types=malloc(sizeof(GType)*a->size); if (param_types==NULL) { g_free(name); SIMPLE_OUT_OF_MEMORY_ERROR("new_signal",sizeof(GType)*a->size); } + for (i=n_params=0; i<a->size; i++) { if (ITEM(a)[i].type!=PIKE_T_STRING) continue;