IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 35161


Ignore:
Timestamp:
Feb 13, 2013, 10:43:41 AM (13 years ago)
Author:
eugene
Message:

FtableToImage was failing to allocate enough memory for the new table to fill the FITS block

Location:
branches/eam_branches/ipp-20120805/Ohana/src
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/elixir_defs.h

    r27435 r35161  
    1 Image                   *Image_Elixir_ToInternal (Image_Elixir *in, off_t Nvalues);
     1Image                   *Image_Elixir_ToInternal (Image_Elixir *in, off_t Nvalues, off_t Nalloc);
    22Image_Elixir            *ImageInternalTo_Elixir (Image *in, off_t Nvalues);
    33Average                 *Average_Elixir_ToInternal (Average_Elixir *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/loneos_defs.h

    r27435 r35161  
    1 Image                   *Image_Loneos_ToInternal (Image_Loneos *in, off_t Nvalues);
     1Image                   *Image_Loneos_ToInternal (Image_Loneos *in, off_t Nvalues, off_t Nalloc);
    22Image_Loneos            *ImageInternalTo_Loneos (Image *in, off_t Nvalues);
    33Average                 *Average_Loneos_ToInternal (Average_Loneos *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/panstarrs_dev_0_defs.h

    r27435 r35161  
    1 Image                   *Image_Panstarrs_DEV_0_ToInternal (Image_Panstarrs_DEV_0 *in, off_t Nvalues);
     1Image                   *Image_Panstarrs_DEV_0_ToInternal (Image_Panstarrs_DEV_0 *in, off_t Nvalues, off_t Nalloc);
    22Image_Panstarrs_DEV_0   *ImageInternalTo_Panstarrs_DEV_0 (Image *in, off_t Nvalues);
    33Average                 *Average_Panstarrs_DEV_0_ToInternal (Average_Panstarrs_DEV_0 *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/panstarrs_dev_1_defs.h

    r27435 r35161  
    1 Image                   *Image_Panstarrs_DEV_1_ToInternal (Image_Panstarrs_DEV_1 *in, off_t Nvalues);
     1Image                   *Image_Panstarrs_DEV_1_ToInternal (Image_Panstarrs_DEV_1 *in, off_t Nvalues, off_t Nalloc);
    22Image_Panstarrs_DEV_1   *ImageInternalTo_Panstarrs_DEV_1 (Image *in, off_t Nvalues);
    33Average                 *Average_Panstarrs_DEV_1_ToInternal (Average_Panstarrs_DEV_1 *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/ps1_dev_1_defs.h

    r27435 r35161  
    1 Image                   *Image_PS1_DEV_1_ToInternal (Image_PS1_DEV_1 *in, off_t Nvalues);
     1Image                   *Image_PS1_DEV_1_ToInternal (Image_PS1_DEV_1 *in, off_t Nvalues, off_t Nalloc);
    22Image_PS1_DEV_1         *ImageInternalTo_PS1_DEV_1 (Image *in, off_t Nvalues);
    33Average                 *Average_PS1_DEV_1_ToInternal (Average_PS1_DEV_1 *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/ps1_dev_2_defs.h

    r27435 r35161  
    1 Image                   *Image_PS1_DEV_2_ToInternal (Image_PS1_DEV_2 *in, off_t Nvalues);
     1Image                   *Image_PS1_DEV_2_ToInternal (Image_PS1_DEV_2 *in, off_t Nvalues, off_t Nalloc);
    22Image_PS1_DEV_2         *ImageInternalTo_PS1_DEV_2 (Image *in, off_t Nvalues);
    33Average                 *Average_PS1_DEV_2_ToInternal (Average_PS1_DEV_2 *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/ps1_dev_3_defs.h

    r27435 r35161  
    1 Image                   *Image_PS1_DEV_3_ToInternal (Image_PS1_DEV_3 *in, off_t Nvalues);
     1Image                   *Image_PS1_DEV_3_ToInternal (Image_PS1_DEV_3 *in, off_t Nvalues, off_t Nalloc);
    22Image_PS1_DEV_3         *ImageInternalTo_PS1_DEV_3 (Image *in, off_t Nvalues);
    33
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/ps1_ref_defs.h

    r27435 r35161  
    1 Image                   *Image_PS1_REF_ToInternal (Image_PS1_REF *in, off_t Nvalues);
     1Image                   *Image_PS1_REF_ToInternal (Image_PS1_REF *in, off_t Nvalues, off_t Nalloc);
    22Image_PS1_REF           *ImageInternalTo_PS1_REF (Image *in, off_t Nvalues);
    33Average                 *Average_PS1_REF_ToInternal (Average_PS1_REF *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/ps1_v1_defs.h

    r27435 r35161  
    1 Image                   *Image_PS1_V1_ToInternal (Image_PS1_V1 *in, off_t Nvalues);
     1Image                   *Image_PS1_V1_ToInternal (Image_PS1_V1 *in, off_t Nvalues, off_t Nalloc);
    22Image_PS1_V1            *ImageInternalTo_PS1_V1 (Image *in, off_t Nvalues);
    33Average                 *Average_PS1_V1_ToInternal (Average_PS1_V1 *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/ps1_v2_defs.h

    r27585 r35161  
    1 Image                   *Image_PS1_V2_ToInternal (Image_PS1_V2 *in, off_t Nvalues);
     1Image                   *Image_PS1_V2_ToInternal (Image_PS1_V2 *in, off_t Nvalues, off_t Nalloc);
    22Image_PS1_V2            *ImageInternalTo_PS1_V2 (Image *in, off_t Nvalues);
    33Average                 *Average_PS1_V2_ToInternal (Average_PS1_V2 *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/ps1_v3_defs.h

    r33649 r35161  
    1 Image                   *Image_PS1_V3_ToInternal (Image_PS1_V3 *in, off_t Nvalues);
     1Image                   *Image_PS1_V3_ToInternal (Image_PS1_V3 *in, off_t Nvalues, off_t Nalloc);
    22Image_PS1_V3            *ImageInternalTo_PS1_V3 (Image *in, off_t Nvalues);
    33Average                 *Average_PS1_V3_ToInternal (Average_PS1_V3 *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/include/ps1_v4_defs.h

    r34260 r35161  
    1 Image                   *Image_PS1_V4_ToInternal (Image_PS1_V4 *in, off_t Nvalues);
     1Image                   *Image_PS1_V4_ToInternal (Image_PS1_V4 *in, off_t Nvalues, off_t Nalloc);
    22Image_PS1_V4            *ImageInternalTo_PS1_V4 (Image *in, off_t Nvalues);
    33Average                 *Average_PS1_V4_ToInternal (Average_PS1_V4 *in, off_t Nvalues, SecFilt **primary);
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert.c

    r34260 r35161  
    327327/*** Image Conversions ***/
    328328
     329// I have loaded the disk db table and now I want to convert to the internal format
     330// (Image structure), but I onyl
    329331int FtableToImage (FTable *ftable, Header *theader, char *format) {
    330332
     
    340342      exit (2);
    341343    }
    342     ftable[0].buffer = (char *) Image_Elixir_ToInternal (tmpimage, Nimage);
     344    int Nalloc = gfits_data_pad_size(Nimage*sizeof(Image));
     345    ftable[0].buffer = (char *) Image_Elixir_ToInternal (tmpimage, Nimage, Nalloc);
    343346    free (tmpimage);
    344347    gfits_free_header (theader);
     
    365368      exit (2); \
    366369    } \
    367     ftable[0].buffer = (char *) Image_##TYPE##_ToInternal (tmpimage, Nimage); \
     370    int Nalloc = gfits_data_pad_size(Nimage*sizeof(Image));             \
     371    ftable[0].buffer = (char *) Image_##TYPE##_ToInternal (tmpimage, Nimage, Nalloc); \
    368372    free (tmpimage); \
    369373    gfits_free_header (theader); \
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c

    r34382 r35161  
    257257}
    258258
    259 Image *Image_PS1_DEV_1_ToInternal (Image_PS1_DEV_1 *in, off_t Nvalues) {
     259Image *Image_PS1_DEV_1_ToInternal (Image_PS1_DEV_1 *in, off_t Nvalues, off_t Nalloc) {
    260260
    261261  off_t i;
    262262  Image *out;
    263263
    264   ALLOCATE_ZERO (out, Image, Nvalues);
     264  // ALLOCATE_ZERO (out, Image, Nvalues);
     265  char *buffer;
     266  ALLOCATE_ZERO (buffer, char, Nalloc);
     267  out = (Image *) buffer;
    265268
    266269  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c

    r34382 r35161  
    251251}
    252252
    253 Image *Image_PS1_DEV_2_ToInternal (Image_PS1_DEV_2 *in, off_t Nvalues) {
     253Image *Image_PS1_DEV_2_ToInternal (Image_PS1_DEV_2 *in, off_t Nvalues, off_t Nalloc) {
    254254
    255255  off_t i;
    256256  Image *out;
    257257
    258   ALLOCATE_ZERO (out, Image, Nvalues);
     258  // ALLOCATE_ZERO (out, Image, Nvalues);
     259  char *buffer;
     260  ALLOCATE_ZERO (buffer, char, Nalloc);
     261  out = (Image *) buffer;
    259262
    260263  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c

    r33649 r35161  
    55// We only provide image and photcode conversion
    66
    7 Image *Image_PS1_DEV_3_ToInternal (Image_PS1_DEV_3 *in, off_t Nvalues) {
     7Image *Image_PS1_DEV_3_ToInternal (Image_PS1_DEV_3 *in, off_t Nvalues, off_t Nalloc) {
    88
    99  off_t i;
    1010  Image *out;
    1111
    12   ALLOCATE_ZERO (out, Image, Nvalues);
     12  // ALLOCATE_ZERO (out, Image, Nvalues);
     13  char *buffer;
     14  ALLOCATE_ZERO (buffer, char, Nalloc);
     15  out = (Image *) buffer;
    1316
    1417  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c

    r34382 r35161  
    209209}
    210210
    211 Image *Image_PS1_REF_ToInternal (Image_PS1_REF *in, off_t Nvalues) {
     211Image *Image_PS1_REF_ToInternal (Image_PS1_REF *in, off_t Nvalues, off_t Nalloc) {
    212212
    213213  off_t i;
    214214  Image *out;
    215215
    216   ALLOCATE_ZERO (out, Image, Nvalues);
     216  // ALLOCATE_ZERO (out, Image, Nvalues);
     217  char *buffer;
     218  ALLOCATE_ZERO (buffer, char, Nalloc);
     219  out = (Image *) buffer;
    217220
    218221  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c

    r34382 r35161  
    257257}
    258258
    259 Image *Image_PS1_V1_ToInternal (Image_PS1_V1 *in, off_t Nvalues) {
     259Image *Image_PS1_V1_ToInternal (Image_PS1_V1 *in, off_t Nvalues, off_t Nalloc) {
    260260
    261261  off_t i;
    262262  Image *out;
    263263
    264   ALLOCATE_ZERO (out, Image, Nvalues);
     264  // ALLOCATE_ZERO (out, Image, Nvalues);
     265  char *buffer;
     266  ALLOCATE_ZERO (buffer, char, Nalloc);
     267  out = (Image *) buffer;
    265268
    266269  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c

    r34382 r35161  
    261261}
    262262
    263 Image *Image_PS1_V2_ToInternal (Image_PS1_V2 *in, off_t Nvalues) {
     263Image *Image_PS1_V2_ToInternal (Image_PS1_V2 *in, off_t Nvalues, off_t Nalloc) {
    264264
    265265  off_t i;
    266266  Image *out;
    267267
    268   ALLOCATE_ZERO (out, Image, Nvalues);
     268  // ALLOCATE_ZERO (out, Image, Nvalues);
     269  char *buffer;
     270  ALLOCATE_ZERO (buffer, char, Nalloc);
     271  out = (Image *) buffer;
    269272
    270273  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c

    r34382 r35161  
    262262}
    263263
    264 Image *Image_PS1_V3_ToInternal (Image_PS1_V3 *in, off_t Nvalues) {
     264Image *Image_PS1_V3_ToInternal (Image_PS1_V3 *in, off_t Nvalues, off_t Nalloc) {
    265265
    266266  off_t i;
    267267  Image *out;
    268268
    269   ALLOCATE_ZERO (out, Image, Nvalues);
     269  // ALLOCATE_ZERO (out, Image, Nvalues);
     270  char *buffer;
     271  ALLOCATE_ZERO (buffer, char, Nalloc);
     272  out = (Image *) buffer;
    270273
    271274  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c

    r34382 r35161  
    273273}
    274274
    275 Image *Image_PS1_V4_ToInternal (Image_PS1_V4 *in, off_t Nvalues) {
     275Image *Image_PS1_V4_ToInternal (Image_PS1_V4 *in, off_t Nvalues, off_t Nalloc) {
    276276
    277277  off_t i;
    278278  Image *out;
    279279
    280   ALLOCATE_ZERO (out, Image, Nvalues);
     280  // ALLOCATE_ZERO (out, Image, Nvalues);
     281  char *buffer;
     282  ALLOCATE_ZERO (buffer, char, Nalloc);
     283  out = (Image *) buffer;
    281284
    282285  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_elixir.c

    r34382 r35161  
    268268
    269269/* convert elixir-format images to internal images */
    270 Image *Image_Elixir_ToInternal (Image_Elixir *in, off_t Nvalues) {
     270Image *Image_Elixir_ToInternal (Image_Elixir *in, off_t Nvalues, off_t Nalloc) {
    271271
    272272  off_t i;
    273273  Image *out;
    274274
    275   ALLOCATE_ZERO (out, Image, Nvalues);
     275  // ALLOCATE_ZERO (out, Image, Nvalues);
     276  char *buffer;
     277  ALLOCATE_ZERO (buffer, char, Nalloc);
     278  out = (Image *) buffer;
    276279
    277280  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_loneos.c

    r34382 r35161  
    260260
    261261/* convert loneos-format images to internal images */
    262 Image *Image_Loneos_ToInternal (Image_Loneos *in, off_t Nvalues) {
     262Image *Image_Loneos_ToInternal (Image_Loneos *in, off_t Nvalues, off_t Nalloc) {
    263263
    264264  off_t i;
    265265  Image *out;
    266266
    267   ALLOCATE_ZERO (out, Image, Nvalues);
     267  // ALLOCATE_ZERO (out, Image, Nvalues);
     268  char *buffer;
     269  ALLOCATE_ZERO (buffer, char, Nalloc);
     270  out = (Image *) buffer;
    268271
    269272  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c

    r34382 r35161  
    268268
    269269/* convert panstarrs-format images to internal images */
    270 Image *Image_Panstarrs_DEV_0_ToInternal (Image_Panstarrs_DEV_0 *in, off_t Nvalues) {
     270Image *Image_Panstarrs_DEV_0_ToInternal (Image_Panstarrs_DEV_0 *in, off_t Nvalues, off_t Nalloc) {
    271271
    272272  off_t i;
    273273  Image *out;
    274274
    275   ALLOCATE_ZERO (out, Image, Nvalues);
     275  // ALLOCATE_ZERO (out, Image, Nvalues);
     276  char *buffer;
     277  ALLOCATE_ZERO (buffer, char, Nalloc);
     278  out = (Image *) buffer;
    276279
    277280  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c

    r34382 r35161  
    268268
    269269/* convert panstarrs-format images to internal images */
    270 Image *Image_Panstarrs_DEV_1_ToInternal (Image_Panstarrs_DEV_1 *in, off_t Nvalues) {
     270Image *Image_Panstarrs_DEV_1_ToInternal (Image_Panstarrs_DEV_1 *in, off_t Nvalues, off_t Nalloc) {
    271271
    272272  off_t i;
    273273  Image *out;
    274274
    275   ALLOCATE_ZERO (out, Image, Nvalues);
     275  // ALLOCATE_ZERO (out, Image, Nvalues);
     276  char *buffer;
     277  ALLOCATE_ZERO (buffer, char, Nalloc);
     278  out = (Image *) buffer;
    276279
    277280  for (i = 0; i < Nvalues; i++) {
  • branches/eam_branches/ipp-20120805/Ohana/src/libdvo/src/dvo_image.c

    r34388 r35161  
    8484  }
    8585  if (!status) return (FALSE);
     86
     87  // XXX this is the problem... the conversion (external to internal) is
     88  // only allocated Nimage * sizeof(image) not padded to FITS blocks,
     89  // so when we later do a gfits_copy_ftable, we stomp on bad memory
    8690  FtableToImage (&db[0].ftable, &db[0].theader, &db[0].format);
    8791  db[0].swapped = TRUE;  /* table has internal byte-order */
  • branches/eam_branches/ipp-20120805/Ohana/src/libfits/include/gfitsio.h

    r33648 r35161  
    123123off_t   gfits_data_size                PROTO((Header *header));
    124124off_t   gfits_data_min_size            PROTO((Header *header));
     125off_t   gfits_data_pad_size            PROTO((off_t rawsize));
    125126int     gfits_extended_to_primary      PROTO((Header *header, int simple, char *comment));
    126127int     gfits_primary_to_extended      PROTO((Header *header, char *exttype, char *comment));
  • branches/eam_branches/ipp-20120805/Ohana/src/libfits/matrix/F_matrix.c

    r27435 r35161  
    4343  return (size);
    4444}
     45
     46off_t gfits_data_pad_size (off_t rawsize) {
     47 
     48  off_t Nrec, size;
     49
     50  /* round up to next complete block */
     51  if (rawsize % FT_RECORD_SIZE) {
     52    Nrec = 1 + (int) (rawsize / FT_RECORD_SIZE);
     53    size = FT_RECORD_SIZE * Nrec;
     54  }
     55
     56  return (size);
     57}
Note: See TracChangeset for help on using the changeset viewer.