ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/rmatrix.c
(Generate patch)

Comparing ray/src/util/rmatrix.c (file contents):
Revision 2.87 by greg, Fri Apr 4 01:48:25 2025 UTC vs.
Revision 2.88 by greg, Fri Apr 4 02:53:03 2025 UTC

# Line 680 | Line 680 | rmx_copy(const RMATRIX *rm)
680   int
681   rmx_transfer_data(RMATRIX *rdst, RMATRIX *rsrc, int dometa)
682   {
683 <        if (!rdst | !rsrc || (rdst->nrows != rsrc->nrows) |
684 <                        (rdst->ncols != rsrc->ncols) |
685 <                        (rdst->ncomp != rsrc->ncomp))
683 >        if (!rdst | !rsrc)
684                  return(0);
687
685          if (dometa) {           /* transfer everything? */
686                  rmx_reset(rdst);
687                  *rdst = *rsrc;
688                  rsrc->info = NULL; rsrc->mapped = NULL; rsrc->mtx = NULL;
689                  return(1);
690          }
691 < #ifdef MAP_FILE                 /* just matrix data -- leave metadata */
691 >                                /* just matrix data -- leave metadata */
692 >        if ((rdst->nrows != rsrc->nrows) |
693 >                        (rdst->ncols != rsrc->ncols) |
694 >                        (rdst->ncomp != rsrc->ncomp))
695 >                return(0);
696 > #ifdef MAP_FILE
697          if (rdst->mapped)
698                  munmap(rdst->mapped, rmx_mapped_size(rdst));
699          else
# Line 751 | Line 753 | rmx_transpose(RMATRIX *rm)
753              for (i = dnew.nrows; i--; )
754                  memcpy(rmx_lval(&dnew,i,j), rmx_val(rm,j,i),
755                                  sizeof(rmx_dtype)*dnew.ncomp);
756 <        rmx_reset(rm);                  /* frees memory */
757 <        *rm = dnew;                     /* replace w/ transpose */
756 <        return(1);
756 >                                        /* and reassign result */
757 >        return(rmx_transfer_data(rm, &dnew, 1));
758   }
759  
760   /* Multiply (concatenate) two matrices and allocate the result */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines