mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-23 12:36:51 +03:00
Merge branch 'chris/malloc'
This replaces most instances of AllocVec/FreeVec in the Amiga frontend code with malloc/free, to enable OS3 to get full benefit from the clib2 slab allocator.
This commit is contained in:
commit
3ab8032f16
@ -42,7 +42,6 @@
|
||||
#include "amiga/hotlist.h"
|
||||
#include "amiga/tree.h"
|
||||
#include "amiga/libs.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/misc.h"
|
||||
#include "amiga/theme.h"
|
||||
|
||||
@ -272,7 +271,7 @@ RXHOOKF(rx_open)
|
||||
{
|
||||
if(!gw) return;
|
||||
|
||||
dln = ami_misc_allocvec_clear(sizeof(struct dlnode), 0);
|
||||
dln = calloc(1, sizeof(struct dlnode));
|
||||
dln->filename = strdup((char *)cmd->ac_ArgList[3]);
|
||||
dln->node.ln_Name = strdup((char *)cmd->ac_ArgList[0]);
|
||||
dln->node.ln_Type = NT_USER;
|
||||
|
@ -113,7 +113,7 @@ void *amiga_bitmap_create(int width, int height, unsigned int state)
|
||||
bitmap = ami_misc_itempool_alloc(pool_bitmap, sizeof(struct bitmap));
|
||||
if(bitmap == NULL) return NULL;
|
||||
|
||||
bitmap->pixdata = ami_misc_allocvec_clear(width*height*4, 0xff);
|
||||
bitmap->pixdata = ami_memory_clear_alloc(width*height*4, 0xff);
|
||||
bitmap->width = width;
|
||||
bitmap->height = height;
|
||||
|
||||
@ -170,7 +170,7 @@ void amiga_bitmap_destroy(void *bitmap)
|
||||
|
||||
if(bm->native_mask) FreeRaster(bm->native_mask, bm->width, bm->height);
|
||||
if(bm->drawhandle) ReleaseDrawHandle(bm->drawhandle);
|
||||
FreeVec(bm->pixdata);
|
||||
ami_memory_clear_free(bm->pixdata);
|
||||
|
||||
if(bm->url) nsurl_unref(bm->url);
|
||||
if(bm->title) free(bm->title);
|
||||
@ -737,7 +737,7 @@ void ami_bitmap_set_icondata(struct bitmap *bm, ULONG *icondata)
|
||||
|
||||
void ami_bitmap_free_icondata(struct bitmap *bm)
|
||||
{
|
||||
if(bm->icondata) FreeVec(bm->icondata);
|
||||
if(bm->icondata) free(bm->icondata);
|
||||
bm->icondata = NULL;
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,6 @@
|
||||
#include "amiga/iff_cset.h"
|
||||
#include "amiga/iff_dr2d.h"
|
||||
#include "amiga/menu.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/utf8.h"
|
||||
|
||||
#define ID_UTF8 MAKE_ID('U','T','F','8')
|
||||
@ -114,10 +113,10 @@ static char *ami_clipboard_cat_collection(struct CollectionItem *ci, LONG codese
|
||||
|
||||
case 0:
|
||||
if(ci_new) {
|
||||
ci_next->ci_Next = ami_misc_allocvec_clear(sizeof(struct CollectionItem), 0);
|
||||
ci_next->ci_Next = calloc(1, sizeof(struct CollectionItem));
|
||||
ci_next = ci_next->ci_Next;
|
||||
} else {
|
||||
ci_new = ami_misc_allocvec_clear(sizeof(struct CollectionItem), 0);
|
||||
ci_new = calloc(1, sizeof(struct CollectionItem));
|
||||
ci_next = ci_new;
|
||||
}
|
||||
|
||||
@ -128,10 +127,10 @@ static char *ami_clipboard_cat_collection(struct CollectionItem *ci, LONG codese
|
||||
|
||||
default:
|
||||
if(ci_new) {
|
||||
ci_next->ci_Next = ami_misc_allocvec_clear(sizeof(struct CollectionItem), 0);
|
||||
ci_next->ci_Next = calloc(1, sizeof(struct CollectionItem));
|
||||
ci_next = ci_next->ci_Next;
|
||||
} else {
|
||||
ci_new = ami_misc_allocvec_clear(sizeof(struct CollectionItem), 0);
|
||||
ci_new = calloc(1, sizeof(struct CollectionItem));
|
||||
ci_next = ci_new;
|
||||
}
|
||||
|
||||
@ -166,7 +165,7 @@ static char *ami_clipboard_cat_collection(struct CollectionItem *ci, LONG codese
|
||||
|
||||
if(ci_new) {
|
||||
free(ci_curr->ci_Data);
|
||||
FreeVec(ci_curr);
|
||||
free(ci_curr);
|
||||
}
|
||||
} while ((ci_curr = ci_next));
|
||||
|
||||
|
@ -64,7 +64,6 @@
|
||||
#include "amiga/file.h"
|
||||
#include "amiga/iff_dr2d.h"
|
||||
#include "amiga/libs.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/misc.h"
|
||||
#include "amiga/theme.h"
|
||||
#include "amiga/utf8.h"
|
||||
@ -101,7 +100,7 @@ static struct gui_download_window *gui_download_window_create(download_context *
|
||||
char *dl_filename = ami_utf8_easy(download_context_get_filename(ctx));
|
||||
APTR va[3];
|
||||
|
||||
dw = ami_misc_allocvec_clear(sizeof(struct gui_download_window), 0);
|
||||
dw = calloc(1, sizeof(struct gui_download_window));
|
||||
|
||||
if(gui && (!IsListEmpty(&gui->dllist)) && (dw->dln = (struct dlnode *)FindName(&gui->dllist,url)))
|
||||
{
|
||||
@ -123,13 +122,13 @@ static struct gui_download_window *gui_download_window_create(download_context *
|
||||
AddPart((STRPTR)&dw->fname,savereq->fr_File,1024);
|
||||
if(!ami_download_check_overwrite(dw->fname, gui->shared->win, total_size))
|
||||
{
|
||||
FreeVec(dw);
|
||||
free(dw);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FreeVec(dw);
|
||||
free(dw);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@ -146,7 +145,7 @@ static struct gui_download_window *gui_download_window_create(download_context *
|
||||
|
||||
if(!(dw->fh = FOpen((STRPTR)&dw->fname,MODE_NEWFILE,0)))
|
||||
{
|
||||
FreeVec(dw);
|
||||
free(dw);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -261,7 +260,7 @@ static void gui_download_window_done(struct gui_download_window *dw)
|
||||
|
||||
free(dln->filename);
|
||||
Remove((struct Node *)dln);
|
||||
FreeVec(dln);
|
||||
free(dln);
|
||||
}
|
||||
|
||||
FClose(dw->fh);
|
||||
@ -344,7 +343,7 @@ void ami_free_download_list(struct List *dllist)
|
||||
free(node->node.ln_Name);
|
||||
free(node->filename);
|
||||
Remove((struct Node *)node);
|
||||
FreeVec((struct Node *)node);
|
||||
free((struct Node *)node);
|
||||
}while((node=nnode));
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,6 @@
|
||||
#include "amiga/bitmap.h"
|
||||
#include "amiga/filetype.h"
|
||||
#include "amiga/datatypes.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/plotters.h"
|
||||
|
||||
typedef struct amiga_dt_anim_content {
|
||||
@ -216,7 +215,7 @@ bool amiga_dt_anim_convert(struct content *c)
|
||||
#else
|
||||
#warning FIXME: Need to use a different blitter function for OS3!
|
||||
#endif
|
||||
FreeVec(clut);
|
||||
free(clut);
|
||||
|
||||
adt_frame.MethodID = ADTM_UNLOADFRAME;
|
||||
IDoMethodA(plugin->dto, (Msg)&adt_frame);
|
||||
@ -344,7 +343,7 @@ content_type amiga_dt_anim_content_type(void)
|
||||
static APTR ami_colormap_to_clut(struct ColorMap *cmap)
|
||||
{
|
||||
int i;
|
||||
UBYTE *clut = ami_misc_allocvec_clear(256 * 4, 0); /* NB: Was not MEMF_PRIVATE */
|
||||
UBYTE *clut = calloc(1, 256 * 4);
|
||||
ULONG colr[256 * 4];
|
||||
|
||||
if(!clut) return NULL;
|
||||
|
@ -40,7 +40,6 @@
|
||||
#include "amiga/filetype.h"
|
||||
#include "amiga/icon.h"
|
||||
#include "amiga/iff_dr2d.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/misc.h"
|
||||
#include "amiga/save_pdf.h"
|
||||
#include "amiga/theme.h"
|
||||
@ -90,7 +89,7 @@ void ami_file_open(struct gui_window_2 *gwin)
|
||||
ASLFR_FilterFunc, &aslhookfunc,
|
||||
TAG_DONE))
|
||||
{
|
||||
if((temp = AllocVecTagList(1024, NULL)))
|
||||
if((temp = malloc(1024)))
|
||||
{
|
||||
strlcpy(temp, filereq->fr_Drawer, 1024);
|
||||
AddPart(temp, filereq->fr_File, 1024);
|
||||
@ -108,7 +107,7 @@ void ami_file_open(struct gui_window_2 *gwin)
|
||||
nsurl_unref(url);
|
||||
}
|
||||
|
||||
FreeVec(temp);
|
||||
free(temp);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -213,7 +212,7 @@ void ami_file_save(int type, char *fname, struct Window *win,
|
||||
void ami_file_save_req(int type, struct gui_window_2 *gwin,
|
||||
struct hlcache_handle *object)
|
||||
{
|
||||
char *fname = AllocVecTagList(1024, NULL);
|
||||
char *fname = malloc(1024);
|
||||
char *initial_fname = NULL;
|
||||
char *fname_with_ext = NULL;
|
||||
bool strip_ext = true;
|
||||
@ -224,7 +223,7 @@ void ami_file_save_req(int type, struct gui_window_2 *gwin,
|
||||
}
|
||||
|
||||
if(initial_fname != NULL) {
|
||||
fname_with_ext = AllocVecTagList(strlen(initial_fname) + 5, NULL); /* 5 = .ext\0 */
|
||||
fname_with_ext = malloc(strlen(initial_fname) + 5); /* 5 = .ext\0 */
|
||||
|
||||
strcpy(fname_with_ext, initial_fname);
|
||||
|
||||
@ -261,8 +260,8 @@ void ami_file_save_req(int type, struct gui_window_2 *gwin,
|
||||
ami_file_save(type, fname, gwin->win, object, gwin->gw->favicon, gwin->gw->bw);
|
||||
}
|
||||
|
||||
if(fname) FreeVec(fname);
|
||||
if(fname_with_ext) FreeVec(fname_with_ext);
|
||||
if(fname) free(fname);
|
||||
if(fname_with_ext) free(fname_with_ext);
|
||||
}
|
||||
|
||||
void ami_file_req_init(void)
|
||||
|
@ -31,7 +31,6 @@
|
||||
#include "utils/utils.h"
|
||||
|
||||
#include "amiga/filetype.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/object.h"
|
||||
|
||||
/**
|
||||
@ -217,7 +216,7 @@ nserror ami_mime_init(const char *mimefile)
|
||||
{
|
||||
if ((node = AddObject(ami_mime_list, AMINS_MIME))) {
|
||||
ObjectCallback(node, ami_mime_entry_free);
|
||||
mimeentry = ami_misc_allocvec_clear(sizeof(struct ami_mime_entry), 0);
|
||||
mimeentry = calloc(1, sizeof(struct ami_mime_entry));
|
||||
node->objstruct = mimeentry;
|
||||
|
||||
if(rarray[AMI_MIME_MIMETYPE])
|
||||
@ -361,7 +360,7 @@ static APTR ami_mime_guess_add_datatype(struct DataType *dt, lwc_string **lwc_mi
|
||||
node = AddObject(ami_mime_list, AMINS_MIME);
|
||||
if(node == NULL) return NULL;
|
||||
|
||||
mimeentry = ami_misc_allocvec_clear(sizeof(struct ami_mime_entry), 0);
|
||||
mimeentry = calloc(1, sizeof(struct ami_mime_entry));
|
||||
if(mimeentry == NULL) return NULL;
|
||||
|
||||
node->objstruct = mimeentry;
|
||||
|
@ -363,7 +363,7 @@ static struct ami_font_cache_node *ami_font_open(const char *font, bool critical
|
||||
{
|
||||
LOG("Requested font not found: %s", font);
|
||||
if(critical == true) amiga_warn_user("CompError", font);
|
||||
FreeVec(nodedata);
|
||||
free(nodedata);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -601,7 +601,7 @@ static inline int32 ami_font_plot_glyph(struct OutlineFont *ofont, struct RastPo
|
||||
TAG_DONE);
|
||||
#else
|
||||
/* On OS3 the glyph needs to be in chip RAM */
|
||||
void *chip_glyph = AllocVec(glyph->glm_BMModulo * glyph->glm_BMRows, MEMF_CHIP);
|
||||
void *chip_glyph = ami_memory_chip_alloc(glyph->glm_BMModulo * glyph->glm_BMRows);
|
||||
if(chip_glyph != NULL) {
|
||||
CopyMem(glyphbm, chip_glyph, glyph->glm_BMModulo * glyph->glm_BMRows);
|
||||
|
||||
@ -612,7 +612,7 @@ static inline int32 ami_font_plot_glyph(struct OutlineFont *ofont, struct RastPo
|
||||
y - glyph->glm_Y0 + glyph->glm_BlackTop,
|
||||
glyph->glm_BlackWidth, glyph->glm_BlackHeight);
|
||||
|
||||
FreeVec(chip_glyph);
|
||||
ami_memory_chip_free(chip_glyph);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ struct ami_font_cache_node *ami_font_cache_alloc_entry(const char *font)
|
||||
uint32 hash = XXH32(font, strlen(font), 0);
|
||||
nodedata = (struct ami_font_cache_node *)InsertSkipNode(ami_font_cache_list, (APTR)hash, sizeof(struct ami_font_cache_node));
|
||||
#else
|
||||
nodedata = AllocVecTagList(sizeof(struct ami_font_cache_node), NULL);
|
||||
nodedata = malloc(sizeof(struct ami_font_cache_node));
|
||||
#endif
|
||||
|
||||
GetSysTime(&nodedata->lastused);
|
||||
|
@ -99,7 +99,7 @@ const char *ami_font_scan_lookup(const uint16 *code, lwc_string **glypharray)
|
||||
static struct ami_font_scan_window *ami_font_scan_gui_open(int32 fonts)
|
||||
{
|
||||
struct ami_font_scan_window *fsw =
|
||||
AllocVecTagList(sizeof(struct ami_font_scan_window), NULL);
|
||||
malloc(sizeof(struct ami_font_scan_window));
|
||||
|
||||
if(fsw == NULL) return NULL;
|
||||
|
||||
@ -201,7 +201,7 @@ static void ami_font_scan_gui_close(struct ami_font_scan_window *fsw)
|
||||
if(fsw) {
|
||||
DisposeObject(fsw->objects[FS_OID_MAIN]);
|
||||
ami_utf8_free(fsw->title);
|
||||
FreeVec(fsw);
|
||||
free(fsw);
|
||||
}
|
||||
}
|
||||
|
||||
@ -317,10 +317,10 @@ static ULONG ami_font_scan_list(struct MinList *list)
|
||||
struct nsObject *node;
|
||||
|
||||
do {
|
||||
if((afh = (struct AvailFontsHeader *)AllocVecTagList(afSize, NULL))) {
|
||||
if((afh = (struct AvailFontsHeader *)malloc(afSize))) {
|
||||
if(((afShortage = AvailFonts((STRPTR)afh, afSize,
|
||||
AFF_DISK | AFF_OTAG | AFF_SCALED)))) {
|
||||
FreeVec(afh);
|
||||
free(afh);
|
||||
afSize += afShortage;
|
||||
}
|
||||
} else {
|
||||
@ -350,7 +350,7 @@ static ULONG ami_font_scan_list(struct MinList *list)
|
||||
}
|
||||
}
|
||||
}
|
||||
FreeVec(afh);
|
||||
free(afh);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
@ -140,8 +140,8 @@
|
||||
#include "amiga/launch.h"
|
||||
#include "amiga/libs.h"
|
||||
#include "amiga/login.h"
|
||||
#include "amiga/menu.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/menu.h"
|
||||
#include "amiga/misc.h"
|
||||
#include "amiga/nsoption.h"
|
||||
#include "amiga/plotters.h"
|
||||
@ -1371,7 +1371,7 @@ nserror ami_gui_get_space_box(Object *obj, struct IBox **bbox)
|
||||
{
|
||||
#ifdef __amigaos4__
|
||||
if(LIB_IS_AT_LEAST((struct Library *)SpaceBase, 53, 6)) {
|
||||
*bbox = AllocVecTagList(sizeof(struct IBox), NULL);
|
||||
*bbox = malloc(sizeof(struct IBox));
|
||||
if(*bbox == NULL) return NSERROR_NOMEM;
|
||||
GetAttr(SPACE_RenderBox, obj, (ULONG *)*bbox);
|
||||
} else
|
||||
@ -1388,7 +1388,7 @@ void ami_gui_free_space_box(struct IBox *bbox)
|
||||
{
|
||||
#ifdef __amigaos4__
|
||||
if(LIB_IS_AT_LEAST((struct Library *)SpaceBase, 53, 6)) {
|
||||
FreeVec(bbox);
|
||||
free(bbox);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -1516,7 +1516,7 @@ static struct IBox *ami_ns_rect_to_ibox(struct gui_window_2 *gwin, const struct
|
||||
{
|
||||
struct IBox *bbox, *ibox;
|
||||
|
||||
ibox = AllocVecTagList(sizeof(struct IBox), NULL);
|
||||
ibox = malloc(sizeof(struct IBox));
|
||||
if(ibox == NULL) return NULL;
|
||||
|
||||
if(ami_gui_get_space_box((Object *)gwin->objects[GID_BROWSER], &bbox) != NSERROR_OK) {
|
||||
@ -1537,7 +1537,7 @@ static struct IBox *ami_ns_rect_to_ibox(struct gui_window_2 *gwin, const struct
|
||||
(ibox->Top > (bbox->Top + bbox->Height)) ||
|
||||
(ibox->Width < 0) || (ibox->Height < 0))
|
||||
{
|
||||
FreeVec(ibox);
|
||||
free(ibox);
|
||||
ami_gui_free_space_box(bbox);
|
||||
return NULL;
|
||||
}
|
||||
@ -2585,7 +2585,7 @@ static void ami_handle_appmsg(void)
|
||||
{
|
||||
if((appwinargs = &appmsg->am_ArgList[i]))
|
||||
{
|
||||
if((filename = AllocVecTagList(1024, NULL)))
|
||||
if((filename = malloc(1024)))
|
||||
{
|
||||
if(appwinargs->wa_Lock)
|
||||
{
|
||||
@ -2666,7 +2666,7 @@ static void ami_handle_appmsg(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
FreeVec(filename);
|
||||
free(filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3819,7 +3819,7 @@ gui_window_create(struct browser_window *bw,
|
||||
|
||||
if(curh > (scrn->Height - cury)) curh = scrn->Height - cury;
|
||||
|
||||
g = ami_misc_allocvec_clear(sizeof(struct gui_window), 0);
|
||||
g = calloc(1, sizeof(struct gui_window));
|
||||
|
||||
if(!g)
|
||||
{
|
||||
@ -3893,7 +3893,7 @@ gui_window_create(struct browser_window *bw,
|
||||
return g;
|
||||
}
|
||||
|
||||
g->shared = ami_misc_allocvec_clear(sizeof(struct gui_window_2), 0);
|
||||
g->shared = calloc(1, sizeof(struct gui_window_2));
|
||||
|
||||
if(!g->shared)
|
||||
{
|
||||
@ -3956,7 +3956,7 @@ gui_window_create(struct browser_window *bw,
|
||||
g->shared->tabs=1;
|
||||
g->shared->next_tab=1;
|
||||
|
||||
g->shared->svbuffer = ami_misc_allocvec_clear(2000, 0);
|
||||
g->shared->svbuffer = calloc(1, 2000);
|
||||
|
||||
g->shared->helphints[GID_BACK] =
|
||||
translate_escape_chars(messages_get("HelpToolbarBack"));
|
||||
@ -4348,8 +4348,8 @@ gui_window_create(struct browser_window *bw,
|
||||
if(!g->shared->win)
|
||||
{
|
||||
amiga_warn_user("NoMemory","");
|
||||
FreeVec(g->shared);
|
||||
FreeVec(g);
|
||||
free(g->shared);
|
||||
free(g);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -4529,12 +4529,12 @@ static void gui_window_destroy(struct gui_window *g)
|
||||
|
||||
ami_utf8_free(g->tabtitle);
|
||||
|
||||
FreeVec(g);
|
||||
free(g);
|
||||
return;
|
||||
}
|
||||
|
||||
ami_plot_release_pens(g->shared->shared_pens);
|
||||
FreeVec(g->shared->shared_pens);
|
||||
free(g->shared->shared_pens);
|
||||
ami_schedule_redraw_remove(g->shared);
|
||||
ami_schedule(-1, ami_gui_refresh_favicon, g->shared);
|
||||
|
||||
@ -4564,7 +4564,7 @@ static void gui_window_destroy(struct gui_window *g)
|
||||
|
||||
free(g->shared->wintitle);
|
||||
ami_utf8_free(g->shared->status);
|
||||
FreeVec(g->shared->svbuffer);
|
||||
free(g->shared->svbuffer);
|
||||
|
||||
for(gid = 0; gid < GID_LAST; gid++)
|
||||
free(g->shared->helphints[gid]);
|
||||
@ -4574,7 +4574,7 @@ static void gui_window_destroy(struct gui_window *g)
|
||||
Remove(g->tab_node);
|
||||
FreeClickTabNode(g->tab_node);
|
||||
}
|
||||
FreeVec(g); // g->shared should be freed by DelObject()
|
||||
free(g); // g->shared should be freed by DelObject()
|
||||
|
||||
if(IsMinListEmpty(window_list))
|
||||
{
|
||||
@ -5266,7 +5266,7 @@ static bool gui_window_drag_start(struct gui_window *g, gui_drag_type type,
|
||||
|
||||
if(g->shared->ptr_lock)
|
||||
{
|
||||
FreeVec(g->shared->ptr_lock);
|
||||
free(g->shared->ptr_lock);
|
||||
g->shared->ptr_lock = NULL;
|
||||
}
|
||||
}
|
||||
@ -5612,7 +5612,7 @@ int main(int argc, char** argv)
|
||||
len += strlen(users_dir);
|
||||
len += 2; /* for poss path sep and NULL term */
|
||||
|
||||
current_user_dir = AllocVecTagList(len, NULL);
|
||||
current_user_dir = malloc(len);
|
||||
if(current_user_dir == NULL) {
|
||||
ami_misc_fatal_error("Failed to allocate memory");
|
||||
ami_schedule_free();
|
||||
@ -5729,7 +5729,7 @@ int main(int argc, char** argv)
|
||||
netsurf_exit();
|
||||
|
||||
ami_nsoption_free();
|
||||
FreeVec(current_user_dir);
|
||||
free(current_user_dir);
|
||||
FreeVec(current_user_faviconcache);
|
||||
FreeVec(current_user);
|
||||
|
||||
|
@ -176,11 +176,15 @@ extern struct Screen *scrn;
|
||||
extern struct MsgPort *sport;
|
||||
extern struct gui_window *cur_gw;
|
||||
|
||||
/* The return value for these functions must be deallocated using FreeVec() */
|
||||
STRPTR ami_locale_langs(int *codeset);
|
||||
char *ami_gui_get_cache_favicon_name(struct nsurl *url, bool only_if_avail);
|
||||
|
||||
/* Functions lacking documentation */
|
||||
void ami_get_msg(void);
|
||||
void ami_try_quit(void);
|
||||
void ami_quit_netsurf(void);
|
||||
void ami_schedule_redraw(struct gui_window_2 *gwin, bool full_redraw);
|
||||
STRPTR ami_locale_langs(int *codeset);
|
||||
int ami_key_to_nskey(ULONG keycode, struct InputEvent *ie);
|
||||
bool ami_text_box_at_point(struct gui_window_2 *gwin, ULONG *restrict x, ULONG *restrict y);
|
||||
bool ami_mouse_to_ns_coords(struct gui_window_2 *gwin, int *restrict x, int *restrict y,
|
||||
@ -192,7 +196,6 @@ void ami_gui_tabs_toggle_all(void);
|
||||
bool ami_locate_resource(char *fullpath, const char *file);
|
||||
void ami_gui_update_hotlist_button(struct gui_window_2 *gwin);
|
||||
nserror ami_gui_new_blank_tab(struct gui_window_2 *gwin);
|
||||
char *ami_gui_get_cache_favicon_name(struct nsurl *url, bool only_if_avail);
|
||||
int ami_gui_count_windows(int window, int *tabs);
|
||||
void ami_gui_set_scale(struct gui_window *gw, float scale);
|
||||
|
||||
|
@ -73,7 +73,6 @@
|
||||
#include "amiga/gui_options.h"
|
||||
#include "amiga/help.h"
|
||||
#include "amiga/libs.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/nsoption.h"
|
||||
#include "amiga/object.h"
|
||||
#include "amiga/selectmenu.h"
|
||||
@ -636,7 +635,7 @@ void ami_gui_opts_open(void)
|
||||
|
||||
if(!gow)
|
||||
{
|
||||
gow = ami_misc_allocvec_clear(sizeof(struct ami_gui_opts_window), 0);
|
||||
gow = calloc(1, sizeof(struct ami_gui_opts_window));
|
||||
if(gow == NULL) return;
|
||||
|
||||
ami_gui_opts_setup(gow);
|
||||
@ -2284,7 +2283,7 @@ struct List *ami_gui_opts_websearch(void)
|
||||
const char *name;
|
||||
int iter;
|
||||
|
||||
list = AllocVecTagList(sizeof(struct List), NULL);
|
||||
list = malloc(sizeof(struct List));
|
||||
NewList(list);
|
||||
|
||||
if (nsoption_charp(search_engines_file) == NULL) return list;
|
||||
@ -2314,6 +2313,6 @@ void ami_gui_opts_websearch_free(struct List *websearchlist)
|
||||
FreeChooserNode(node);
|
||||
} while((node = nnode));
|
||||
|
||||
FreeVec(websearchlist);
|
||||
free(websearchlist);
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,6 @@
|
||||
#include "graphics/rpattr.h"
|
||||
|
||||
#include "amiga/libs.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/misc.h"
|
||||
#include "amiga/object.h"
|
||||
#include "amiga/plotters.h"
|
||||
@ -117,8 +116,8 @@ void ami_history_open(struct gui_window *gw)
|
||||
|
||||
if(!gw->hw)
|
||||
{
|
||||
gw->hw = ami_misc_allocvec_clear(sizeof(struct history_window), 0);
|
||||
gw->hw->gg = ami_misc_allocvec_clear(sizeof(struct gui_globals), 0);
|
||||
gw->hw = calloc(1, sizeof(struct history_window));
|
||||
gw->hw->gg = calloc(1, sizeof(struct gui_globals));
|
||||
|
||||
ami_init_layers(gw->hw->gg, scrn->Width, scrn->Height, false);
|
||||
|
||||
@ -227,7 +226,7 @@ static bool ami_history_click(struct history_window *hw, uint16 code)
|
||||
void ami_history_close(struct history_window *hw)
|
||||
{
|
||||
ami_free_layers(hw->gg);
|
||||
FreeVec(hw->gg);
|
||||
free(hw->gg);
|
||||
hw->gw->hw = NULL;
|
||||
DisposeObject(hw->objects[OID_MAIN]);
|
||||
DelObject(hw->node);
|
||||
|
@ -49,7 +49,6 @@
|
||||
#include "amiga/os3support.h"
|
||||
#include "amiga/bitmap.h"
|
||||
#include "amiga/icon.h"
|
||||
#include "amiga/memory.h"
|
||||
|
||||
#define THUMBNAIL_WIDTH 100 /* Icon sizes for thumbnails, usually the same as */
|
||||
#define THUMBNAIL_HEIGHT 86 /* WIDTH/HEIGHT in desktop/thumbnail.c */
|
||||
@ -239,7 +238,7 @@ bool amiga_icon_convert(struct content *c)
|
||||
if(dobj) FreeDiskObject(dobj);
|
||||
|
||||
if(format==IDFMT_PALETTEMAPPED)
|
||||
FreeVec(imagebufptr);
|
||||
free(imagebufptr);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -326,7 +325,7 @@ static ULONG *amiga_icon_convertcolouricon32(UBYTE *icondata, ULONG width, ULONG
|
||||
|
||||
if (alpha==0) alpha=0xff;
|
||||
|
||||
argbicon = (ULONG *)AllocVecTagList(width*height*4, NULL);
|
||||
argbicon = (ULONG *)malloc(width * height * 4);
|
||||
if (!argbicon) return(NULL);
|
||||
|
||||
cmap=GetColorMap(pals1);
|
||||
@ -485,8 +484,8 @@ void amiga_icon_superimpose_favicon(char *path, struct hlcache_handle *icon, cha
|
||||
if(format == IDFMT_PALETTEMAPPED)
|
||||
{
|
||||
/* Free the 32-bit data we created */
|
||||
FreeVec(icondata1);
|
||||
FreeVec(icondata2);
|
||||
free(icondata1);
|
||||
free(icondata2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -501,7 +500,7 @@ struct DiskObject *amiga_icon_from_bitmap(struct bitmap *bm)
|
||||
{
|
||||
bitmap = ami_bitmap_get_native(bm, THUMBNAIL_WIDTH,
|
||||
THUMBNAIL_HEIGHT, NULL);
|
||||
icondata = AllocVecTagList(THUMBNAIL_WIDTH * 4 * THUMBNAIL_HEIGHT, NULL);
|
||||
icondata = malloc(THUMBNAIL_WIDTH * 4 * THUMBNAIL_HEIGHT);
|
||||
ami_bitmap_set_icondata(bm, icondata);
|
||||
|
||||
if(bitmap) {
|
||||
|
@ -19,6 +19,7 @@
|
||||
#ifdef WITH_NS_SVG
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <inttypes.h>
|
||||
#include <svgtiny.h>
|
||||
#include <proto/exec.h>
|
||||
@ -30,11 +31,9 @@
|
||||
#include "netsurf/content.h"
|
||||
#include "amiga/os3support.h"
|
||||
#include "amiga/iff_dr2d.h"
|
||||
#include "amiga/memory.h"
|
||||
#else
|
||||
#include "os3support.h"
|
||||
#include "iff_dr2d.h"
|
||||
#include "misc.h"
|
||||
#endif
|
||||
|
||||
static struct ColorRegister cm[1000];
|
||||
@ -171,7 +170,7 @@ bool ami_svg_to_dr2d(struct IFFHandle *iffh, const char *buffer,
|
||||
}
|
||||
|
||||
for (unsigned int i = 0; i != diagram->shape_count; i++) {
|
||||
attr = ami_misc_allocvec_clear(sizeof(struct attr_struct), 0);
|
||||
attr = calloc(1, sizeof(struct attr_struct));
|
||||
if (diagram->shape[i].fill == svgtiny_TRANSPARENT)
|
||||
attr->FillType = FT_NONE;
|
||||
else
|
||||
@ -193,7 +192,7 @@ bool ami_svg_to_dr2d(struct IFFHandle *iffh, const char *buffer,
|
||||
WriteChunkBytes(iffh,attr,14);
|
||||
PopChunk(iffh);
|
||||
}
|
||||
FreeVec(attr);
|
||||
free(attr);
|
||||
|
||||
if (diagram->shape[i].path) {
|
||||
union {
|
||||
@ -272,30 +271,30 @@ bool ami_svg_to_dr2d(struct IFFHandle *iffh, const char *buffer,
|
||||
PopChunk(iffh);
|
||||
}
|
||||
} else if (diagram->shape[i].text) {
|
||||
stxt = ami_misc_allocvec_clear(sizeof(struct stxt_struct), 0);
|
||||
stxt = calloc(1, sizeof(struct stxt_struct));
|
||||
stxt->BaseX = diagram->shape[i].text_x;
|
||||
stxt->BaseY = diagram->shape[i].text_y;
|
||||
stxt->NumChars = strlen(diagram->shape[i].text);
|
||||
if(!fons_written)
|
||||
{
|
||||
fons = ami_misc_allocvec_clear(sizeof(struct fons_struct), 0);
|
||||
if(!(PushChunk(iffh,0,ID_FONS,IFFSIZE_UNKNOWN)))
|
||||
fons = calloc(1, sizeof(struct fons_struct));
|
||||
if(!(PushChunk(iffh, 0, ID_FONS, IFFSIZE_UNKNOWN)))
|
||||
{
|
||||
WriteChunkBytes(iffh, fons, sizeof(struct fons_struct));
|
||||
WriteChunkBytes(iffh, "Topaz\0", 6);
|
||||
PopChunk(iffh);
|
||||
}
|
||||
FreeVec(fons);
|
||||
free(fons);
|
||||
fons_written = TRUE;
|
||||
}
|
||||
|
||||
if(!(PushChunk(iffh,0,ID_STXT,IFFSIZE_UNKNOWN)))
|
||||
if(!(PushChunk(iffh, 0, ID_STXT, IFFSIZE_UNKNOWN)))
|
||||
{
|
||||
WriteChunkBytes(iffh,stxt,26);
|
||||
WriteChunkBytes(iffh,diagram->shape[i].text,strlen(diagram->shape[i].text));
|
||||
WriteChunkBytes(iffh, stxt, 26);
|
||||
WriteChunkBytes(iffh, diagram->shape[i].text, strlen(diagram->shape[i].text));
|
||||
PopChunk(iffh);
|
||||
}
|
||||
FreeVec(stxt);
|
||||
free(stxt);
|
||||
}
|
||||
}
|
||||
|
||||
@ -380,7 +379,7 @@ int main(int argc, char **argv)
|
||||
{
|
||||
size = GetFileSize(fh);
|
||||
|
||||
buffer = AllocVecTagList((uint32_t)size, NULL);
|
||||
buffer = malloc((uint32_t)size);
|
||||
|
||||
Read(fh,buffer,(uint32_t)size);
|
||||
Close(fh);
|
||||
@ -404,7 +403,7 @@ int main(int argc, char **argv)
|
||||
|
||||
ami_svg_to_dr2d(iffh,buffer,size,(char *)rarray[A_SVG]);
|
||||
|
||||
FreeVec(buffer);
|
||||
free(buffer);
|
||||
if(iffh) CloseIFF(iffh);
|
||||
if(iffh->iff_Stream) Close((BPTR)iffh->iff_Stream);
|
||||
if(iffh) FreeIFF(iffh);
|
||||
|
@ -50,10 +50,10 @@ static struct ami_protocol *ami_openurl_add_protocol(const char *url)
|
||||
{
|
||||
nsurl *ns_url;
|
||||
struct ami_protocol *ami_p =
|
||||
(struct ami_protocol *)AllocVecTagList(sizeof(struct ami_protocol), NULL);
|
||||
(struct ami_protocol *)malloc(sizeof(struct ami_protocol));
|
||||
|
||||
if (nsurl_create(url, &ns_url) != NSERROR_OK) {
|
||||
FreeVec(ami_p);
|
||||
free(ami_p);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ static struct ami_protocol *ami_openurl_add_protocol(const char *url)
|
||||
nsurl_unref(ns_url);
|
||||
if (ami_p->protocol == NULL)
|
||||
{
|
||||
FreeVec(ami_p);
|
||||
free(ami_p);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -83,11 +83,11 @@ static void ami_openurl_free_list(struct MinList *list)
|
||||
|
||||
Remove((struct Node *)node);
|
||||
if (node->protocol) lwc_string_unref(node->protocol);
|
||||
FreeVec(node);
|
||||
free(node);
|
||||
node = NULL;
|
||||
}while((node=nnode));
|
||||
|
||||
FreeVec(list);
|
||||
free(list);
|
||||
}
|
||||
|
||||
static BOOL ami_openurl_check_list(struct MinList *list, nsurl *url)
|
||||
|
@ -46,7 +46,6 @@
|
||||
|
||||
#include "amiga/gui.h"
|
||||
#include "amiga/libs.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/object.h"
|
||||
#include "amiga/login.h"
|
||||
|
||||
@ -67,7 +66,7 @@ void gui_401login_open(nsurl *url, const char *realm,
|
||||
nserror (*cb)(bool proceed, void *pw), void *cbpw)
|
||||
{
|
||||
const char *auth;
|
||||
struct gui_login_window *lw = ami_misc_allocvec_clear(sizeof(struct gui_login_window), 0);
|
||||
struct gui_login_window *lw = calloc(1, sizeof(struct gui_login_window));
|
||||
lwc_string *host = nsurl_get_component(url, NSURL_HOST);
|
||||
|
||||
assert(host != NULL);
|
||||
|
@ -25,17 +25,28 @@
|
||||
ULONG __slab_max_size = 8192; /* Enable clib2's slab allocator */
|
||||
#endif
|
||||
|
||||
void *ami_misc_allocvec_clear(int size, UBYTE value)
|
||||
/* Special clear (ie. non-zero), which is different on OS3 and 4 */
|
||||
void *ami_memory_clear_alloc(size_t size, UBYTE value)
|
||||
{
|
||||
#ifdef __amigaos4__
|
||||
return AllocVecTags(size, AVT_ClearWithValue, value, TAG_DONE);
|
||||
#else
|
||||
void *mem = AllocVec(size, MEMF_ANY);
|
||||
void *mem = malloc(size);
|
||||
if (mem) memset(mem, value, size);
|
||||
return mem;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Free special clear (ie. non-zero) area, which is different on OS3 and 4 */
|
||||
void ami_memory_clear_free(void *p)
|
||||
{
|
||||
#ifdef __amigaos4__
|
||||
FreeVec(p);
|
||||
#else
|
||||
free(p);
|
||||
#endif
|
||||
}
|
||||
|
||||
APTR ami_misc_itempool_create(int size)
|
||||
{
|
||||
#ifdef __amigaos4__
|
||||
|
@ -21,8 +21,18 @@
|
||||
|
||||
#include <exec/types.h>
|
||||
|
||||
/* Standard memory allocation */
|
||||
void *ami_misc_allocvec_clear(int size, UBYTE value);
|
||||
/* Alloc/free chip memory */
|
||||
#ifdef __amigaos4__
|
||||
#define ami_memory_chip_alloc(s) malloc(s)
|
||||
#define ami_memory_chip_free(p) free(p)
|
||||
#else
|
||||
#define ami_memory_chip_alloc(s) AllocVec(s, MEMF_CHIP)
|
||||
#define ami_memory_chip_free(p) FreeVec(p)
|
||||
#endif
|
||||
|
||||
/* Alloc/free a block cleared to non-zero */
|
||||
void *ami_memory_clear_alloc(size_t size, UBYTE value);
|
||||
void ami_memory_clear_free(void *p);
|
||||
|
||||
/* Itempool cross-compatibility */
|
||||
APTR ami_misc_itempool_create(int size);
|
||||
|
@ -68,7 +68,6 @@
|
||||
#include "amiga/hotlist.h"
|
||||
#include "amiga/libs.h"
|
||||
#include "amiga/menu.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/misc.h"
|
||||
#include "amiga/nsoption.h"
|
||||
#include "amiga/print.h"
|
||||
@ -504,11 +503,11 @@ HOOKF(void, ami_menu_item_arexx_execute, APTR, window, struct IntuiMessage *)
|
||||
ASLFR_InitialDrawer, nsoption_charp(arexx_dir),
|
||||
ASLFR_InitialPattern, "#?.nsrx",
|
||||
TAG_DONE)) {
|
||||
if((temp = AllocVecTagList(1024, NULL))) {
|
||||
if((temp = malloc(1024))) {
|
||||
strlcpy(temp, filereq->fr_Drawer, 1024);
|
||||
AddPart(temp, filereq->fr_File, 1024);
|
||||
ami_arexx_execute(temp);
|
||||
FreeVec(temp);
|
||||
free(temp);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -521,13 +520,13 @@ HOOKF(void, ami_menu_item_arexx_entries, APTR, window, struct IntuiMessage *)
|
||||
GetAttr(WINDOW_UserData, (Object *)window, (ULONG *)&gwin);
|
||||
|
||||
if(script) {
|
||||
if((temp = AllocVecTagList(1024, NULL))) {
|
||||
if((temp = malloc(1024))) {
|
||||
BPTR lock;
|
||||
if((lock = Lock(nsoption_charp(arexx_dir), SHARED_LOCK))) {
|
||||
DevNameFromLock(lock, temp, 1024, DN_FULLPATH);
|
||||
AddPart(temp, script, 1024);
|
||||
ami_arexx_execute(temp);
|
||||
FreeVec(temp);
|
||||
free(temp);
|
||||
UnLock(lock);
|
||||
}
|
||||
}
|
||||
@ -560,7 +559,7 @@ void ami_free_menulabs(struct gui_window_2 *gwin)
|
||||
gwin->menukey[i] = 0;
|
||||
}
|
||||
|
||||
FreeVec(gwin->menutype);
|
||||
free(gwin->menutype);
|
||||
gwin->menutype = NULL;
|
||||
}
|
||||
|
||||
@ -609,7 +608,7 @@ static void ami_init_menulabs(struct gui_window_2 *gwin)
|
||||
{
|
||||
int i;
|
||||
|
||||
gwin->menutype = ami_misc_allocvec_clear(sizeof(UBYTE) * (AMI_MENU_AREXX_MAX + 1), 0);
|
||||
gwin->menutype = calloc(1, sizeof(UBYTE) * (AMI_MENU_AREXX_MAX + 1));
|
||||
|
||||
for(i=0;i <= AMI_MENU_AREXX_MAX;i++)
|
||||
{
|
||||
@ -936,7 +935,7 @@ void ami_menu_free(struct gui_window_2 *gwin)
|
||||
|
||||
struct Menu *ami_menu_create(struct gui_window_2 *gwin)
|
||||
{
|
||||
gwin->menu = ami_misc_allocvec_clear(sizeof(struct NewMenu) * (AMI_MENU_AREXX_MAX + 1), 0);
|
||||
gwin->menu = calloc(1, sizeof(struct NewMenu) * (AMI_MENU_AREXX_MAX + 1));
|
||||
ami_init_menulabs(gwin);
|
||||
ami_menu_scan(ami_tree_get_tree(hotlist_window), gwin);
|
||||
ami_menu_arexx_scan(gwin);
|
||||
@ -959,7 +958,7 @@ struct Menu *ami_menu_create(struct gui_window_2 *gwin)
|
||||
gwin->imenu = CreateMenus(gwin->menu, TAG_DONE);
|
||||
LayoutMenus(gwin->imenu, gwin->vi,
|
||||
GTMN_NewLookMenus, TRUE, TAG_DONE);
|
||||
FreeVec(gwin->menu); /**\todo this should be local to this function */
|
||||
free(gwin->menu); /**\todo this should be local to this function */
|
||||
gwin->menu = NULL;
|
||||
|
||||
return gwin->imenu;
|
||||
@ -978,7 +977,7 @@ void ami_menu_arexx_scan(struct gui_window_2 *gwin)
|
||||
char *menu_lab;
|
||||
|
||||
if((lock = Lock(nsoption_charp(arexx_dir), SHARED_LOCK))) {
|
||||
if((buffer = AllocVecTagList(1024, NULL))) {
|
||||
if((buffer = malloc(1024))) {
|
||||
if((ctrl = AllocDosObject(DOS_EXALLCONTROL,NULL))) {
|
||||
ctrl->eac_LastKey = 0;
|
||||
|
||||
@ -1009,7 +1008,7 @@ void ami_menu_arexx_scan(struct gui_window_2 *gwin)
|
||||
} while(cont);
|
||||
FreeDosObject(DOS_EXALLCONTROL,ctrl);
|
||||
}
|
||||
FreeVec(buffer);
|
||||
free(buffer);
|
||||
}
|
||||
UnLock(lock);
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ static void ami_NewMinList(struct MinList *list)
|
||||
/* Allocate and initialise a new MinList */
|
||||
struct MinList *ami_AllocMinList(void)
|
||||
{
|
||||
struct MinList *objlist = (struct MinList *)AllocVecTagList(sizeof(struct nsList), NULL);
|
||||
struct MinList *objlist = (struct MinList *)malloc(sizeof(struct nsList));
|
||||
if(objlist == NULL) return NULL;
|
||||
ami_NewMinList(objlist);
|
||||
return objlist;
|
||||
@ -98,7 +98,7 @@ static void DelObjectInternal(struct nsObject *dtzo, BOOL free_obj)
|
||||
{
|
||||
Remove((struct Node *)dtzo);
|
||||
if(dtzo->callback != NULL) dtzo->callback(dtzo->objstruct);
|
||||
if(dtzo->objstruct && free_obj) FreeVec(dtzo->objstruct);
|
||||
if(dtzo->objstruct && free_obj) free(dtzo->objstruct);
|
||||
if(dtzo->dtz_Node.ln_Name) free(dtzo->dtz_Node.ln_Name);
|
||||
ami_misc_itempool_free(pool_nsobj, dtzo, sizeof(struct nsObject));
|
||||
dtzo = NULL;
|
||||
@ -131,6 +131,6 @@ void FreeObjList(struct MinList *objlist)
|
||||
}
|
||||
} while((node=nnode));
|
||||
|
||||
FreeVec(objlist);
|
||||
free(objlist);
|
||||
}
|
||||
|
||||
|
@ -46,241 +46,6 @@
|
||||
#define FAILURE (FALSE)
|
||||
#define NO !
|
||||
|
||||
/* Diskfont */
|
||||
struct OutlineFont *OpenOutlineFont(STRPTR fileName, struct List *list, ULONG flags)
|
||||
{
|
||||
BPTR fh = 0;
|
||||
int64 size = 0;
|
||||
struct TagItem *ti;
|
||||
UBYTE *buffer;
|
||||
STRPTR fname, otagpath, fontpath;
|
||||
struct BulletBase *BulletBase;
|
||||
struct OutlineFont *of = NULL;
|
||||
struct GlyphEngine *gengine;
|
||||
char *p = 0;
|
||||
struct FontContentsHeader fch;
|
||||
|
||||
if((p = strrchr(fileName, '.')))
|
||||
*p = '\0';
|
||||
|
||||
fontpath = (STRPTR)ASPrintf("FONTS:%s.font", fileName);
|
||||
fh = Open(fontpath, MODE_OLDFILE);
|
||||
|
||||
if(fh == 0) {
|
||||
LOG("Unable to open FONT %s", fontpath);
|
||||
FreeVec(fontpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if(Read(fh, &fch, sizeof(struct FontContentsHeader)) != sizeof(struct FontContentsHeader)) {
|
||||
LOG("Unable to read FONT %s", fontpath);
|
||||
FreeVec(fontpath);
|
||||
Close(fh);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Close(fh);
|
||||
|
||||
if(fch.fch_FileID != OFCH_ID) {
|
||||
LOG("%s is not an outline font!", fontpath);
|
||||
FreeVec(fontpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
otagpath = (STRPTR)ASPrintf("FONTS:%s.otag", fileName);
|
||||
fh = Open(otagpath, MODE_OLDFILE);
|
||||
|
||||
if(p) *p = '.';
|
||||
|
||||
if(fh == 0) {
|
||||
LOG("Unable to open OTAG %s", otagpath);
|
||||
FreeVec(otagpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
size = GetFileSize(fh);
|
||||
buffer = (UBYTE *)AllocVec(size, MEMF_ANY);
|
||||
if(buffer == NULL) {
|
||||
LOG("Unable to allocate memory");
|
||||
Close(fh);
|
||||
FreeVec(otagpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Read(fh, buffer, size);
|
||||
Close(fh);
|
||||
|
||||
/* The first tag is supposed to be OT_FileIdent and should equal 'size' */
|
||||
struct TagItem *tag = (struct TagItem *)buffer;
|
||||
if((tag->ti_Tag != OT_FileIdent) || (tag->ti_Data != (ULONG)size)) {
|
||||
LOG("Invalid OTAG file");
|
||||
FreeVec(buffer);
|
||||
FreeVec(otagpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Relocate all the OT_Indirect tags */
|
||||
while((ti = NextTagItem(&tag))) {
|
||||
if(ti->ti_Tag & OT_Indirect) {
|
||||
ti->ti_Data += (ULONG)buffer;
|
||||
}
|
||||
}
|
||||
|
||||
/* Find OT_Engine and open the font engine */
|
||||
if(ti = FindTagItem(OT_Engine, buffer)) {
|
||||
LOG("Using font engine %s", ti->ti_Data);
|
||||
fname = ASPrintf("%s.library", ti->ti_Data);
|
||||
} else {
|
||||
LOG("Cannot find OT_Engine tag");
|
||||
FreeVec(buffer);
|
||||
FreeVec(otagpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BulletBase = (struct BulletBase *)OpenLibrary(fname, 0L);
|
||||
|
||||
if(BulletBase == NULL) {
|
||||
LOG("Unable to open font engine %s", fname);
|
||||
FreeVec(buffer);
|
||||
FreeVec(fname);
|
||||
FreeVec(otagpath);
|
||||
}
|
||||
|
||||
FreeVec(fname);
|
||||
|
||||
gengine = OpenEngine();
|
||||
|
||||
SetInfo(gengine,
|
||||
OT_OTagPath, (ULONG)otagpath,
|
||||
OT_OTagList, (ULONG)buffer,
|
||||
TAG_DONE);
|
||||
|
||||
of = AllocVec(sizeof(struct OutlineFont), MEMF_CLEAR);
|
||||
if(of == NULL) return NULL;
|
||||
|
||||
of->BulletBase = BulletBase;
|
||||
of->GEngine = gengine;
|
||||
of->OTagPath = otagpath;
|
||||
of->olf_OTagList = buffer;
|
||||
|
||||
return of;
|
||||
}
|
||||
|
||||
void CloseOutlineFont(struct OutlineFont *of, struct List *list)
|
||||
{
|
||||
struct BulletBase *BulletBase = of->BulletBase;
|
||||
|
||||
CloseEngine(of->GEngine);
|
||||
CloseLibrary((struct Library *)BulletBase);
|
||||
|
||||
FreeVec(of->OTagPath);
|
||||
FreeVec(of->olf_OTagList);
|
||||
FreeVec(of);
|
||||
}
|
||||
|
||||
|
||||
/* DOS */
|
||||
int64 GetFileSize(BPTR fh)
|
||||
{
|
||||
int32 size = 0;
|
||||
struct FileInfoBlock *fib = AllocVec(sizeof(struct FileInfoBlock), MEMF_ANY);
|
||||
if(fib == NULL) return 0;
|
||||
|
||||
ExamineFH(fh, fib);
|
||||
size = fib->fib_Size;
|
||||
|
||||
FreeVec(fib);
|
||||
return (int64)size;
|
||||
}
|
||||
|
||||
void FreeSysObject(ULONG type, APTR obj)
|
||||
{
|
||||
switch(type) {
|
||||
case ASOT_PORT:
|
||||
DeleteMsgPort(obj);
|
||||
break;
|
||||
case ASOT_IOREQUEST:
|
||||
DeleteIORequest(obj);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Exec */
|
||||
struct Node *GetHead(struct List *list)
|
||||
{
|
||||
struct Node *res = NULL;
|
||||
|
||||
if ((NULL != list) && (NULL != list->lh_Head->ln_Succ))
|
||||
{
|
||||
res = list->lh_Head;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
struct Node *GetPred(struct Node *node)
|
||||
{
|
||||
if (node->ln_Pred->ln_Pred == NULL) return NULL;
|
||||
return node->ln_Pred;
|
||||
}
|
||||
|
||||
struct Node *GetSucc(struct Node *node)
|
||||
{
|
||||
if (node->ln_Succ->ln_Succ == NULL) return NULL;
|
||||
return node->ln_Succ;
|
||||
}
|
||||
|
||||
|
||||
/* Intuition */
|
||||
uint32 GetAttrs(Object *obj, Tag tag1, ...)
|
||||
{
|
||||
va_list ap;
|
||||
Tag tag = tag1;
|
||||
ULONG data = 0;
|
||||
int i = 0;
|
||||
|
||||
va_start(ap, tag1);
|
||||
|
||||
while(tag != TAG_DONE) {
|
||||
data = va_arg(ap, ULONG);
|
||||
i += GetAttr(tag, obj, (void *)data);
|
||||
tag = va_arg(ap, Tag);
|
||||
}
|
||||
va_end(ap);
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
ULONG RefreshSetGadgetAttrsA(struct Gadget *g, struct Window *w, struct Requester *r, struct TagItem *tags)
|
||||
{
|
||||
ULONG retval;
|
||||
BOOL changedisabled = FALSE;
|
||||
BOOL disabled;
|
||||
|
||||
if (w) {
|
||||
if (FindTagItem(GA_Disabled,tags)) {
|
||||
changedisabled = TRUE;
|
||||
disabled = g->Flags & GFLG_DISABLED;
|
||||
}
|
||||
}
|
||||
retval = SetGadgetAttrsA(g,w,r,tags);
|
||||
if (w && (retval || (changedisabled && disabled != (g->Flags & GFLG_DISABLED)))) {
|
||||
RefreshGList(g,w,r,1);
|
||||
retval = 1;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
ULONG RefreshSetGadgetAttrs(struct Gadget *g, struct Window *w, struct Requester *r, Tag tag1, ...)
|
||||
{
|
||||
return RefreshSetGadgetAttrsA(g,w,r,(struct TagItem *) &tag1);
|
||||
}
|
||||
|
||||
APTR NewObject(struct IClass * classPtr, CONST_STRPTR classID, ULONG tagList, ...)
|
||||
{
|
||||
return NewObjectA(classPtr, classID, (const struct TagItem *) &tagList);
|
||||
}
|
||||
|
||||
/* Utility */
|
||||
struct FormatContext
|
||||
{
|
||||
@ -430,5 +195,239 @@ long long int strtoll(const char *nptr, char **endptr, int base)
|
||||
return (long long int)strtol(nptr, endptr, base);
|
||||
}
|
||||
|
||||
/* Diskfont */
|
||||
struct OutlineFont *OpenOutlineFont(STRPTR fileName, struct List *list, ULONG flags)
|
||||
{
|
||||
BPTR fh = 0;
|
||||
int64 size = 0;
|
||||
struct TagItem *ti;
|
||||
UBYTE *buffer;
|
||||
STRPTR fname, otagpath, fontpath;
|
||||
struct BulletBase *BulletBase;
|
||||
struct OutlineFont *of = NULL;
|
||||
struct GlyphEngine *gengine;
|
||||
char *p = 0;
|
||||
struct FontContentsHeader fch;
|
||||
|
||||
if((p = strrchr(fileName, '.')))
|
||||
*p = '\0';
|
||||
|
||||
fontpath = (STRPTR)ASPrintf("FONTS:%s.font", fileName);
|
||||
fh = Open(fontpath, MODE_OLDFILE);
|
||||
|
||||
if(fh == 0) {
|
||||
LOG("Unable to open FONT %s", fontpath);
|
||||
FreeVec(fontpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if(Read(fh, &fch, sizeof(struct FontContentsHeader)) != sizeof(struct FontContentsHeader)) {
|
||||
LOG("Unable to read FONT %s", fontpath);
|
||||
FreeVec(fontpath);
|
||||
Close(fh);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Close(fh);
|
||||
|
||||
if(fch.fch_FileID != OFCH_ID) {
|
||||
LOG("%s is not an outline font!", fontpath);
|
||||
FreeVec(fontpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
otagpath = (STRPTR)ASPrintf("FONTS:%s.otag", fileName);
|
||||
fh = Open(otagpath, MODE_OLDFILE);
|
||||
|
||||
if(p) *p = '.';
|
||||
|
||||
if(fh == 0) {
|
||||
LOG("Unable to open OTAG %s", otagpath);
|
||||
FreeVec(otagpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
size = GetFileSize(fh);
|
||||
buffer = (UBYTE *)malloc(size);
|
||||
if(buffer == NULL) {
|
||||
LOG("Unable to allocate memory");
|
||||
Close(fh);
|
||||
FreeVec(otagpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Read(fh, buffer, size);
|
||||
Close(fh);
|
||||
|
||||
/* The first tag is supposed to be OT_FileIdent and should equal 'size' */
|
||||
struct TagItem *tag = (struct TagItem *)buffer;
|
||||
if((tag->ti_Tag != OT_FileIdent) || (tag->ti_Data != (ULONG)size)) {
|
||||
LOG("Invalid OTAG file");
|
||||
free(buffer);
|
||||
FreeVec(otagpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Relocate all the OT_Indirect tags */
|
||||
while((ti = NextTagItem(&tag))) {
|
||||
if(ti->ti_Tag & OT_Indirect) {
|
||||
ti->ti_Data += (ULONG)buffer;
|
||||
}
|
||||
}
|
||||
|
||||
/* Find OT_Engine and open the font engine */
|
||||
if(ti = FindTagItem(OT_Engine, buffer)) {
|
||||
LOG("Using font engine %s", ti->ti_Data);
|
||||
fname = ASPrintf("%s.library", ti->ti_Data);
|
||||
} else {
|
||||
LOG("Cannot find OT_Engine tag");
|
||||
free(buffer);
|
||||
FreeVec(otagpath);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BulletBase = (struct BulletBase *)OpenLibrary(fname, 0L);
|
||||
|
||||
if(BulletBase == NULL) {
|
||||
LOG("Unable to open font engine %s", fname);
|
||||
free(buffer);
|
||||
FreeVec(fname);
|
||||
FreeVec(otagpath);
|
||||
}
|
||||
|
||||
FreeVec(fname);
|
||||
|
||||
gengine = OpenEngine();
|
||||
|
||||
SetInfo(gengine,
|
||||
OT_OTagPath, (ULONG)otagpath,
|
||||
OT_OTagList, (ULONG)buffer,
|
||||
TAG_DONE);
|
||||
|
||||
of = calloc(1, sizeof(struct OutlineFont));
|
||||
if(of == NULL) return NULL;
|
||||
|
||||
of->BulletBase = BulletBase;
|
||||
of->GEngine = gengine;
|
||||
of->OTagPath = otagpath;
|
||||
of->olf_OTagList = buffer;
|
||||
|
||||
return of;
|
||||
}
|
||||
|
||||
void CloseOutlineFont(struct OutlineFont *of, struct List *list)
|
||||
{
|
||||
struct BulletBase *BulletBase = of->BulletBase;
|
||||
|
||||
CloseEngine(of->GEngine);
|
||||
CloseLibrary((struct Library *)BulletBase);
|
||||
|
||||
FreeVec(of->OTagPath);
|
||||
free(of->olf_OTagList);
|
||||
free(of);
|
||||
}
|
||||
|
||||
|
||||
/* DOS */
|
||||
int64 GetFileSize(BPTR fh)
|
||||
{
|
||||
int32 size = 0;
|
||||
struct FileInfoBlock *fib = malloc(sizeof(struct FileInfoBlock));
|
||||
if(fib == NULL) return 0;
|
||||
|
||||
ExamineFH(fh, fib);
|
||||
size = fib->fib_Size;
|
||||
|
||||
free(fib);
|
||||
return (int64)size;
|
||||
}
|
||||
|
||||
void FreeSysObject(ULONG type, APTR obj)
|
||||
{
|
||||
switch(type) {
|
||||
case ASOT_PORT:
|
||||
DeleteMsgPort(obj);
|
||||
break;
|
||||
case ASOT_IOREQUEST:
|
||||
DeleteIORequest(obj);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Exec */
|
||||
struct Node *GetHead(struct List *list)
|
||||
{
|
||||
struct Node *res = NULL;
|
||||
|
||||
if ((NULL != list) && (NULL != list->lh_Head->ln_Succ))
|
||||
{
|
||||
res = list->lh_Head;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
struct Node *GetPred(struct Node *node)
|
||||
{
|
||||
if (node->ln_Pred->ln_Pred == NULL) return NULL;
|
||||
return node->ln_Pred;
|
||||
}
|
||||
|
||||
struct Node *GetSucc(struct Node *node)
|
||||
{
|
||||
if (node->ln_Succ->ln_Succ == NULL) return NULL;
|
||||
return node->ln_Succ;
|
||||
}
|
||||
|
||||
|
||||
/* Intuition */
|
||||
uint32 GetAttrs(Object *obj, Tag tag1, ...)
|
||||
{
|
||||
va_list ap;
|
||||
Tag tag = tag1;
|
||||
ULONG data = 0;
|
||||
int i = 0;
|
||||
|
||||
va_start(ap, tag1);
|
||||
|
||||
while(tag != TAG_DONE) {
|
||||
data = va_arg(ap, ULONG);
|
||||
i += GetAttr(tag, obj, (void *)data);
|
||||
tag = va_arg(ap, Tag);
|
||||
}
|
||||
va_end(ap);
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
ULONG RefreshSetGadgetAttrsA(struct Gadget *g, struct Window *w, struct Requester *r, struct TagItem *tags)
|
||||
{
|
||||
ULONG retval;
|
||||
BOOL changedisabled = FALSE;
|
||||
BOOL disabled;
|
||||
|
||||
if (w) {
|
||||
if (FindTagItem(GA_Disabled,tags)) {
|
||||
changedisabled = TRUE;
|
||||
disabled = g->Flags & GFLG_DISABLED;
|
||||
}
|
||||
}
|
||||
retval = SetGadgetAttrsA(g,w,r,tags);
|
||||
if (w && (retval || (changedisabled && disabled != (g->Flags & GFLG_DISABLED)))) {
|
||||
RefreshGList(g,w,r,1);
|
||||
retval = 1;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
ULONG RefreshSetGadgetAttrs(struct Gadget *g, struct Window *w, struct Requester *r, Tag tag1, ...)
|
||||
{
|
||||
return RefreshSetGadgetAttrsA(g,w,r,(struct TagItem *) &tag1);
|
||||
}
|
||||
|
||||
APTR NewObject(struct IClass * classPtr, CONST_STRPTR classID, ULONG tagList, ...)
|
||||
{
|
||||
return NewObjectA(classPtr, classID, (const struct TagItem *) &tagList);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -152,7 +152,6 @@
|
||||
#define DevNameFromLock(A,B,C,D) NameFromLock(A,B,C)
|
||||
|
||||
/* Exec */
|
||||
#define AllocVecTagList(SZ,TAG) AllocVec(SZ,MEMF_ANY) /* AllocVecTagList with no tags */
|
||||
#define FindIName FindName
|
||||
|
||||
/* Intuition */
|
||||
|
@ -33,6 +33,7 @@
|
||||
|
||||
#include <math.h>
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "utils/nsoption.h"
|
||||
#include "utils/utils.h"
|
||||
@ -146,14 +147,10 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height, bool for
|
||||
gg->height = height;
|
||||
|
||||
gg->layerinfo = NewLayerInfo();
|
||||
gg->areabuf = AllocVecTagList(AREA_SIZE, NULL);
|
||||
gg->areabuf = malloc(AREA_SIZE);
|
||||
|
||||
#ifdef __amigaos4__
|
||||
gg->tmprasbuf = AllocVecTagList(width * height, NULL);
|
||||
#else
|
||||
/* OS3/AGA requires this to be in chip mem. RTG would probably rather it wasn't. */
|
||||
gg->tmprasbuf = AllocVec(width * height, MEMF_CHIP);
|
||||
#endif
|
||||
gg->tmprasbuf = ami_memory_chip_alloc(width * height);
|
||||
|
||||
if(gg->palette_mapped == true) {
|
||||
gg->bm = AllocBitMap(width, height, depth, 0, friend);
|
||||
@ -172,7 +169,7 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height, bool for
|
||||
|
||||
if(!gg->bm) amiga_warn_user("NoMemory","");
|
||||
|
||||
gg->rp = AllocVecTagList(sizeof(struct RastPort), NULL);
|
||||
gg->rp = malloc(sizeof(struct RastPort));
|
||||
if(!gg->rp) amiga_warn_user("NoMemory","");
|
||||
|
||||
InitRastPort(gg->rp);
|
||||
@ -185,12 +182,12 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height, bool for
|
||||
|
||||
InstallLayerHook(gg->rp->Layer,LAYERS_NOBACKFILL);
|
||||
|
||||
gg->rp->AreaInfo = AllocVecTagList(sizeof(struct AreaInfo), NULL);
|
||||
gg->rp->AreaInfo = malloc(sizeof(struct AreaInfo));
|
||||
if((!gg->areabuf) || (!gg->rp->AreaInfo)) amiga_warn_user("NoMemory","");
|
||||
|
||||
InitArea(gg->rp->AreaInfo,gg->areabuf, AREA_SIZE/5);
|
||||
InitArea(gg->rp->AreaInfo, gg->areabuf, AREA_SIZE/5);
|
||||
|
||||
gg->rp->TmpRas = AllocVecTagList(sizeof(struct TmpRas), NULL);
|
||||
gg->rp->TmpRas = malloc(sizeof(struct TmpRas));
|
||||
if((!gg->tmprasbuf) || (!gg->rp->TmpRas)) amiga_warn_user("NoMemory","");
|
||||
|
||||
InitTmpRas(gg->rp->TmpRas, gg->tmprasbuf, width*height);
|
||||
@ -219,13 +216,13 @@ void ami_free_layers(struct gui_globals *gg)
|
||||
|
||||
if(gg->rp) {
|
||||
DeleteLayer(0,gg->rp->Layer);
|
||||
FreeVec(gg->rp->TmpRas);
|
||||
FreeVec(gg->rp->AreaInfo);
|
||||
FreeVec(gg->rp);
|
||||
free(gg->rp->TmpRas);
|
||||
free(gg->rp->AreaInfo);
|
||||
free(gg->rp);
|
||||
}
|
||||
|
||||
FreeVec(gg->tmprasbuf);
|
||||
FreeVec(gg->areabuf);
|
||||
ami_memory_chip_free(gg->tmprasbuf);
|
||||
free(gg->areabuf);
|
||||
DisposeLayerInfo(gg->layerinfo);
|
||||
if(gg->palette_mapped == false) {
|
||||
if(gg->bm) ami_rtg_freebitmap(gg->bm);
|
||||
@ -713,7 +710,7 @@ static bool ami_bitmap_tile(int x, int y, int width, int height,
|
||||
bfbm.offsetx = ox;
|
||||
bfbm.offsety = oy;
|
||||
bfbm.mask = ami_bitmap_get_mask(bitmap, width, height, tbm);
|
||||
bfh = ami_misc_allocvec_clear(sizeof(struct Hook), 0); /* NB: Was not MEMF_PRIVATE */
|
||||
bfh = calloc(1, sizeof(struct Hook));
|
||||
bfh->h_Entry = (HOOKFUNC)ami_bitmap_tile_hook;
|
||||
bfh->h_SubEntry = 0;
|
||||
bfh->h_Data = &bfbm;
|
||||
@ -727,7 +724,7 @@ static bool ami_bitmap_tile(int x, int y, int width, int height,
|
||||
if(amiga_bitmap_get_opaque(bitmap)) DeleteBackFillHook(bfh);
|
||||
else
|
||||
#endif
|
||||
FreeVec(bfh);
|
||||
free(bfh);
|
||||
|
||||
if((ami_bitmap_is_nativebm(bitmap, tbm) == false)) {
|
||||
/**\todo is this logic logical? */
|
||||
|
@ -62,7 +62,6 @@
|
||||
#include "amiga/font.h"
|
||||
#include "amiga/gui.h"
|
||||
#include "amiga/libs.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/misc.h"
|
||||
#include "amiga/print.h"
|
||||
#include "amiga/utf8.h"
|
||||
@ -134,11 +133,11 @@ static void ami_print_ui_free(void)
|
||||
int i;
|
||||
|
||||
for(i = 0; i < PGID_LAST; i++) {
|
||||
if(gadlab[i]) FreeVec((APTR)gadlab[i]);
|
||||
if(gadlab[i]) free((APTR)gadlab[i]);
|
||||
}
|
||||
|
||||
for(i = 0; i < 10; i++) {
|
||||
if(printers[i]) FreeVec(printers[i]);
|
||||
if(printers[i]) free(printers[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -228,21 +227,21 @@ void ami_print_ui(struct hlcache_handle *c)
|
||||
char filename[30];
|
||||
int i;
|
||||
|
||||
struct ami_print_window *pw = ami_misc_allocvec_clear(sizeof(struct ami_print_window), 0);
|
||||
struct ami_print_window *pw = calloc(1, sizeof(struct ami_print_window));
|
||||
|
||||
pw->c = c;
|
||||
|
||||
printers[0] = ami_misc_allocvec_clear(50, 0);
|
||||
printers[0] = calloc(1, 50);
|
||||
ami_print_readunit("ENV:Sys/printer.prefs", printers[0], 50, 0);
|
||||
|
||||
strcpy(filename,"ENV:Sys/printerN.prefs");
|
||||
for (i = 1; i < 10; i++)
|
||||
{
|
||||
filename[15] = '0' + i;
|
||||
printers[i] = AllocVecTagList(50, NULL);
|
||||
printers[i] = malloc(50);
|
||||
if(!ami_print_readunit(filename, printers[i], 50, i))
|
||||
{
|
||||
FreeVec(printers[i]);
|
||||
free(printers[i]);
|
||||
printers[i] = NULL;
|
||||
break;
|
||||
}
|
||||
@ -483,7 +482,7 @@ struct MsgPort *ami_print_get_msgport(void)
|
||||
|
||||
bool ami_print_begin(struct print_settings *ps)
|
||||
{
|
||||
ami_print_info.gg = ami_misc_allocvec_clear(sizeof(struct gui_globals), 0);
|
||||
ami_print_info.gg = calloc(1, sizeof(struct gui_globals));
|
||||
if(!ami_print_info.gg) return false;
|
||||
|
||||
ami_init_layers(ami_print_info.gg,
|
||||
@ -510,7 +509,7 @@ bool ami_print_next_page(void)
|
||||
void ami_print_end(void)
|
||||
{
|
||||
ami_free_layers(ami_print_info.gg);
|
||||
FreeVec(ami_print_info.gg);
|
||||
free(ami_print_info.gg);
|
||||
DisposeObject(ami_print_info.objects[OID_MAIN]);
|
||||
ami_gui_set_default_gg();
|
||||
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "utils/config.h"
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/exec.h>
|
||||
@ -122,7 +123,7 @@ void ami_search_open(struct gui_window *gwin)
|
||||
return;
|
||||
}
|
||||
|
||||
fwin = ami_misc_allocvec_clear(sizeof(struct find_window), 0);
|
||||
fwin = calloc(1, sizeof(struct find_window));
|
||||
|
||||
fwin->objects[OID_MAIN] = WindowObj,
|
||||
WA_ScreenTitle, ami_gui_get_screen_title(),
|
||||
|
@ -49,7 +49,7 @@
|
||||
#include "amiga/bitmap.h"
|
||||
#include "amiga/schedule.h"
|
||||
#include "amiga/theme.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/misc.h"
|
||||
|
||||
static struct BitMap *throbber = NULL;
|
||||
static struct bitmap *throbber_nsbm = NULL;
|
||||
@ -363,13 +363,13 @@ void ami_init_mouse_pointers(void)
|
||||
if((ptrfile = Open(ptrfname,MODE_OLDFILE)))
|
||||
{
|
||||
int mx,my;
|
||||
UBYTE *pprefsbuf = AllocVecTagList(1061, NULL);
|
||||
Read(ptrfile,pprefsbuf,1061);
|
||||
UBYTE *pprefsbuf = malloc(1061);
|
||||
Read(ptrfile, pprefsbuf, 1061);
|
||||
|
||||
mouseptrbm[i]=AllocVecTagList(sizeof(struct BitMap), NULL);
|
||||
InitBitMap(mouseptrbm[i],2,32,32);
|
||||
mouseptrbm[i]->Planes[0] = AllocRaster(32,32);
|
||||
mouseptrbm[i]->Planes[1] = AllocRaster(32,32);
|
||||
mouseptrbm[i] = malloc(sizeof(struct BitMap));
|
||||
InitBitMap(mouseptrbm[i], 2, 32, 32);
|
||||
mouseptrbm[i]->Planes[0] = AllocRaster(32, 32);
|
||||
mouseptrbm[i]->Planes[1] = AllocRaster(32, 32);
|
||||
mouseptr.BitMap = mouseptrbm[i];
|
||||
|
||||
for(my=0;my<32;my++)
|
||||
@ -393,7 +393,7 @@ void ami_init_mouse_pointers(void)
|
||||
POINTERA_YResolution,POINTERYRESN_SCREENRESASPECT,
|
||||
TAG_DONE);
|
||||
|
||||
FreeVec(pprefsbuf);
|
||||
free(pprefsbuf);
|
||||
Close(ptrfile);
|
||||
}
|
||||
|
||||
@ -414,7 +414,7 @@ void ami_mouse_pointers_free(void)
|
||||
{
|
||||
FreeRaster(mouseptrbm[i]->Planes[0],32,32);
|
||||
FreeRaster(mouseptrbm[i]->Planes[1],32,32);
|
||||
FreeVec(mouseptrbm[i]);
|
||||
free(mouseptrbm[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -66,7 +66,6 @@
|
||||
#include "amiga/tree.h"
|
||||
#include "amiga/file.h"
|
||||
#include "amiga/libs.h"
|
||||
#include "amiga/memory.h"
|
||||
#include "amiga/misc.h"
|
||||
#include "amiga/utf8.h"
|
||||
#include "amiga/sslcert.h"
|
||||
@ -133,8 +132,8 @@ static void ami_tree_get_window_dimensions(int *width, int *height, void *data);
|
||||
void ami_tree_destroy(struct treeview_window *twin)
|
||||
{
|
||||
tree_delete(twin->tree);
|
||||
FreeVec(twin->shared_pens);
|
||||
FreeVec(twin);
|
||||
free(twin->shared_pens);
|
||||
free(twin);
|
||||
}
|
||||
|
||||
struct tree *ami_tree_get_tree(struct treeview_window *twin)
|
||||
@ -258,7 +257,7 @@ static void ami_tree_redraw_req_dr(void *p)
|
||||
atrr_data->x, atrr_data->y,
|
||||
atrr_data->width, atrr_data->height, &ctx);
|
||||
|
||||
FreeVec(atrr_data);
|
||||
free(atrr_data);
|
||||
ami_gui_free_space_box(bbox);
|
||||
ami_update_pointer(twin->win, GUI_POINTER_DEFAULT);
|
||||
ami_clearclipreg(glob);
|
||||
@ -342,7 +341,7 @@ static void ami_tree_redraw_req(void *p)
|
||||
}
|
||||
}
|
||||
|
||||
FreeVec(atrr_data);
|
||||
free(atrr_data);
|
||||
ami_gui_free_space_box(bbox);
|
||||
ami_update_pointer(twin->win, GUI_POINTER_DEFAULT);
|
||||
ami_clearclipreg(glob);
|
||||
@ -351,7 +350,7 @@ static void ami_tree_redraw_req(void *p)
|
||||
|
||||
static void ami_tree_redraw_request(int x, int y, int width, int height, void *data)
|
||||
{
|
||||
struct ami_tree_redraw_req *atrr_data = AllocVecTagList(sizeof(struct ami_tree_redraw_req), NULL);
|
||||
struct ami_tree_redraw_req *atrr_data = malloc(sizeof(struct ami_tree_redraw_req));
|
||||
|
||||
atrr_data->x = x;
|
||||
atrr_data->y = y;
|
||||
@ -563,7 +562,7 @@ static void ami_tree_menu(struct treeview_window *twin)
|
||||
{
|
||||
if(twin->menu) return;
|
||||
|
||||
if((twin->menu = ami_misc_allocvec_clear(sizeof(struct NewMenu) * AMI_TREE_MENU_ITEMS, 0))) {
|
||||
if((twin->menu = calloc(1, sizeof(struct NewMenu) * AMI_TREE_MENU_ITEMS))) {
|
||||
twin->menu[0].nm_Type = NM_TITLE;
|
||||
twin->menu_name[0] = ami_utf8_easy((char *)messages_get("Tree"));
|
||||
twin->menu[0].nm_Label = twin->menu_name[0];
|
||||
@ -900,7 +899,7 @@ void ami_tree_close(struct treeview_window *twin)
|
||||
twin->menu_name[i] = NULL;
|
||||
}
|
||||
|
||||
FreeVec(twin->menu);
|
||||
free(twin->menu);
|
||||
twin->menu = NULL;
|
||||
ami_utf8_free(twin->wintitle);
|
||||
twin->wintitle = NULL;
|
||||
@ -1456,7 +1455,7 @@ struct treeview_window *ami_tree_create(int flags,
|
||||
{
|
||||
struct treeview_window *twin;
|
||||
|
||||
twin = ami_misc_allocvec_clear(sizeof(struct treeview_window), 0);
|
||||
twin = calloc(1, sizeof(struct treeview_window));
|
||||
|
||||
if(!twin)
|
||||
{
|
||||
|
@ -18,14 +18,14 @@
|
||||
|
||||
#include "testament.h"
|
||||
|
||||
/* NB: AmigaOS revision numbers start at 1 (not 0) and are monotonically
|
||||
* incremental (v1.20 is higher than v1.3 and not the same as v1.2).
|
||||
* Consequently, this version pair may not match the user-facing one in
|
||||
* desktop/version.c. Release revisions are prepended with 6000 to ensure
|
||||
* they are higher than CI builds, and make this (slightly) less confusing.
|
||||
/* Release revisions are prepended with 6000 so the version numbers below
|
||||
* are same as NetSurf numbering.
|
||||
* CI builds use themselves as the revision.
|
||||
* This means releases have a higher revision than CI builds, and stops
|
||||
* problems created by "0" not being a valid AmigaOS revision number.
|
||||
*/
|
||||
#define NETSURF_VERSION_MAJOR "3"
|
||||
#define NETSURF_VERSION_MINOR_EXTERNAL "8"
|
||||
#define NETSURF_VERSION_MINOR_EXTERNAL "7"
|
||||
#if defined(CI_BUILD)
|
||||
#define NETSURF_VERSION_MINOR CI_BUILD
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user