IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 35162 for trunk/Ohana


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

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

Location:
trunk/Ohana/src
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libdvo/include/elixir_defs.h

    r27435 r35162  
    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);
  • trunk/Ohana/src/libdvo/include/loneos_defs.h

    r27435 r35162  
    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);
  • trunk/Ohana/src/libdvo/include/panstarrs_dev_0_defs.h

    r27435 r35162  
    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);
  • trunk/Ohana/src/libdvo/include/panstarrs_dev_1_defs.h

    r27435 r35162  
    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);
  • trunk/Ohana/src/libdvo/include/ps1_dev_1_defs.h

    r27435 r35162  
    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);
  • trunk/Ohana/src/libdvo/include/ps1_dev_2_defs.h

    r27435 r35162  
    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);
  • trunk/Ohana/src/libdvo/include/ps1_dev_3_defs.h

    r27435 r35162  
    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
  • trunk/Ohana/src/libdvo/include/ps1_ref_defs.h

    r27435 r35162  
    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);
  • trunk/Ohana/src/libdvo/include/ps1_v1_defs.h

    r27435 r35162  
    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);
  • trunk/Ohana/src/libdvo/include/ps1_v2_defs.h

    r27585 r35162  
    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);
  • trunk/Ohana/src/libdvo/include/ps1_v3_defs.h

    r33649 r35162  
    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);
  • trunk/Ohana/src/libdvo/include/ps1_v4_defs.h

    r34260 r35162  
    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);
  • trunk/Ohana/src/libdvo/src/dvo_convert.c

    r34260 r35162  
    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); \
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c

    r34749 r35162  
    204204}
    205205
    206 Image *Image_PS1_DEV_1_ToInternal (Image_PS1_DEV_1 *in, off_t Nvalues) {
     206Image *Image_PS1_DEV_1_ToInternal (Image_PS1_DEV_1 *in, off_t Nvalues, off_t Nalloc) {
    207207
    208208  off_t i;
    209209  Image *out;
    210210
    211   ALLOCATE_ZERO (out, Image, Nvalues);
     211  char *buffer;
     212  ALLOCATE_ZERO (buffer, char, Nalloc);
     213  out = (Image *) buffer;
     214  // ALLOCATE_ZERO (out, Image, Nvalues);
    212215
    213216  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c

    r34749 r35162  
    199199}
    200200
    201 Image *Image_PS1_DEV_2_ToInternal (Image_PS1_DEV_2 *in, off_t Nvalues) {
     201Image *Image_PS1_DEV_2_ToInternal (Image_PS1_DEV_2 *in, off_t Nvalues, off_t Nalloc) {
    202202
    203203  off_t i;
    204204  Image *out;
    205205
    206   ALLOCATE_ZERO (out, Image, Nvalues);
     206  char *buffer;
     207  ALLOCATE_ZERO (buffer, char, Nalloc);
     208  out = (Image *) buffer;
     209  // ALLOCATE_ZERO (out, Image, Nvalues);
    207210
    208211  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c

    r33649 r35162  
    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  char *buffer;
     13  ALLOCATE_ZERO (buffer, char, Nalloc);
     14  out = (Image *) buffer;
     15  // ALLOCATE_ZERO (out, Image, Nvalues);
    1316
    1417  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c

    r34749 r35162  
    129129}
    130130
    131 Image *Image_PS1_REF_ToInternal (Image_PS1_REF *in, off_t Nvalues) {
     131Image *Image_PS1_REF_ToInternal (Image_PS1_REF *in, off_t Nvalues, off_t Nalloc) {
    132132
    133133  off_t i;
    134134  Image *out;
    135135
    136   ALLOCATE_ZERO (out, Image, Nvalues);
     136  char *buffer;
     137  ALLOCATE_ZERO (buffer, char, Nalloc);
     138  out = (Image *) buffer;
     139  // ALLOCATE_ZERO (out, Image, Nvalues);
    137140
    138141  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c

    r34749 r35162  
    224224}
    225225
    226 Image *Image_PS1_V1_ToInternal (Image_PS1_V1 *in, off_t Nvalues) {
     226Image *Image_PS1_V1_ToInternal (Image_PS1_V1 *in, off_t Nvalues, off_t Nalloc) {
    227227
    228228  off_t i;
    229229  Image *out;
    230230
    231   ALLOCATE_ZERO (out, Image, Nvalues);
     231  char *buffer;
     232  ALLOCATE_ZERO (buffer, char, Nalloc);
     233  out = (Image *) buffer;
     234  // ALLOCATE_ZERO (out, Image, Nvalues);
    232235
    233236  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c

    r34749 r35162  
    235235}
    236236
    237 Image *Image_PS1_V2_ToInternal (Image_PS1_V2 *in, off_t Nvalues) {
     237Image *Image_PS1_V2_ToInternal (Image_PS1_V2 *in, off_t Nvalues, off_t Nalloc) {
    238238
    239239  off_t i;
    240240  Image *out;
    241241
    242   ALLOCATE_ZERO (out, Image, Nvalues);
     242  char *buffer;
     243  ALLOCATE_ZERO (buffer, char, Nalloc);
     244  out = (Image *) buffer;
     245  // ALLOCATE_ZERO (out, Image, Nvalues);
    243246
    244247  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c

    r34749 r35162  
    245245}
    246246
    247 Image *Image_PS1_V3_ToInternal (Image_PS1_V3 *in, off_t Nvalues) {
     247Image *Image_PS1_V3_ToInternal (Image_PS1_V3 *in, off_t Nvalues, off_t Nalloc) {
    248248
    249249  off_t i;
    250250  Image *out;
    251251
    252   ALLOCATE_ZERO (out, Image, Nvalues);
     252  char *buffer;
     253  ALLOCATE_ZERO (buffer, char, Nalloc);
     254  out = (Image *) buffer;
     255  // ALLOCATE_ZERO (out, Image, Nvalues);
    253256
    254257  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c

    r35102 r35162  
    283283}
    284284
    285 Image *Image_PS1_V4_ToInternal (Image_PS1_V4 *in, off_t Nvalues) {
     285Image *Image_PS1_V4_ToInternal (Image_PS1_V4 *in, off_t Nvalues, off_t Nalloc) {
    286286
    287287  off_t i;
    288288  Image *out;
    289289
    290   ALLOCATE_ZERO (out, Image, Nvalues);
     290  char *buffer;
     291  ALLOCATE_ZERO (buffer, char, Nalloc);
     292  out = (Image *) buffer;
     293  // ALLOCATE_ZERO (out, Image, Nvalues);
    291294
    292295  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c

    r34749 r35162  
    190190
    191191/* convert elixir-format images to internal images */
    192 Image *Image_Elixir_ToInternal (Image_Elixir *in, off_t Nvalues) {
     192Image *Image_Elixir_ToInternal (Image_Elixir *in, off_t Nvalues, off_t Nalloc) {
    193193
    194194  off_t i;
    195195  Image *out;
    196196
    197   ALLOCATE_ZERO (out, Image, Nvalues);
     197  char *buffer;
     198  ALLOCATE_ZERO (buffer, char, Nalloc);
     199  out = (Image *) buffer;
     200  // ALLOCATE_ZERO (out, Image, Nvalues);
    198201
    199202  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_loneos.c

    r34749 r35162  
    170170
    171171/* convert loneos-format images to internal images */
    172 Image *Image_Loneos_ToInternal (Image_Loneos *in, off_t Nvalues) {
     172Image *Image_Loneos_ToInternal (Image_Loneos *in, off_t Nvalues, off_t Nalloc) {
    173173
    174174  off_t i;
    175175  Image *out;
    176176
    177   ALLOCATE_ZERO (out, Image, Nvalues);
     177  char *buffer;
     178  ALLOCATE_ZERO (buffer, char, Nalloc);
     179  out = (Image *) buffer;
     180  // ALLOCATE_ZERO (out, Image, Nvalues);
    178181
    179182  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c

    r34749 r35162  
    210210
    211211/* convert panstarrs-format images to internal images */
    212 Image *Image_Panstarrs_DEV_0_ToInternal (Image_Panstarrs_DEV_0 *in, off_t Nvalues) {
     212Image *Image_Panstarrs_DEV_0_ToInternal (Image_Panstarrs_DEV_0 *in, off_t Nvalues, off_t Nalloc) {
    213213
    214214  off_t i;
    215215  Image *out;
    216216
    217   ALLOCATE_ZERO (out, Image, Nvalues);
     217  char *buffer;
     218  ALLOCATE_ZERO (buffer, char, Nalloc);
     219  out = (Image *) buffer;
     220  // ALLOCATE_ZERO (out, Image, Nvalues);
    218221
    219222  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c

    r34749 r35162  
    210210
    211211/* convert panstarrs-format images to internal images */
    212 Image *Image_Panstarrs_DEV_1_ToInternal (Image_Panstarrs_DEV_1 *in, off_t Nvalues) {
     212Image *Image_Panstarrs_DEV_1_ToInternal (Image_Panstarrs_DEV_1 *in, off_t Nvalues, off_t Nalloc) {
    213213
    214214  off_t i;
    215215  Image *out;
    216216
    217   ALLOCATE_ZERO (out, Image, Nvalues);
     217  char *buffer;
     218  ALLOCATE_ZERO (buffer, char, Nalloc);
     219  out = (Image *) buffer;
     220  // ALLOCATE_ZERO (out, Image, Nvalues);
    218221
    219222  for (i = 0; i < Nvalues; i++) {
  • trunk/Ohana/src/libdvo/src/dvo_image.c

    r34405 r35162  
    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 */
  • trunk/Ohana/src/libfits/include/gfitsio.h

    r33648 r35162  
    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));
  • trunk/Ohana/src/libfits/matrix/F_matrix.c

    r27435 r35162  
    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.