]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - form/frm_def.c
ncurses 5.7 - patch 20090801
[ncurses.git] / form / frm_def.c
index d15237e911e221c7baf3128ce8022a1f096a1a48..e6897514ffddfe9cd24e9ed37f4668764d0c67e3 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_def.c,v 1.20 2006/11/04 16:57:15 tom Exp $")
+MODULE_ID("$Id: frm_def.c,v 1.23 2008/08/04 00:07:55 tom Exp $")
 
 /* this can't be readonly */
 static FORM default_form =
@@ -186,8 +186,9 @@ Connect_Fields(FORM *form, FIELD **fields)
     RETURN(E_BAD_ARGUMENT);
 
   /* allocate page structures */
-  if ((pg = (_PAGE *) malloc(page_nr * sizeof(_PAGE))) != (_PAGE *) 0)
+  if ((pg = typeMalloc(_PAGE, page_nr)) != (_PAGE *) 0)
     {
+      T((T_CREATE("_PAGE %p"), pg));
       form->page = pg;
     }
   else
@@ -233,8 +234,16 @@ Connect_Fields(FORM *form, FIELD **fields)
          fields[j]->page = page_nr;
          fld = Insert_Field_By_Position(fields[j], fld);
        }
-      form->page[page_nr].smin = fld->index;
-      form->page[page_nr].smax = fld->sprev->index;
+      if (fld)
+       {
+         form->page[page_nr].smin = fld->index;
+         form->page[page_nr].smax = fld->sprev->index;
+       }
+      else
+       {
+         form->page[page_nr].smin = 0;
+         form->page[page_nr].smax = 0;
+       }
     }
   RETURN(E_OK);
 }
@@ -290,11 +299,12 @@ new_form(FIELD **fields)
 {
   int err = E_SYSTEM_ERROR;
 
-  FORM *form = (FORM *)malloc(sizeof(FORM));
+  FORM *form = typeMalloc(FORM, 1);
 
   T((T_CALLED("new_form(%p)"), fields));
   if (form)
     {
+      T((T_CREATE("form %p"), form));
       *form = *_nc_Default_Form;
       if ((err = Associate_Fields(form, fields)) != E_OK)
        {