Changeset 1649


Ignore:
Timestamp:
21/10/11 04:12:06 (7 months ago)
Author:
Freddie Akeroyd
Message:

XML now working with int64 dimensions. Refs #258

Location:
trunk/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/napi4.c

    r1648 r1649  
    742742        sprintf (pBuffer, 
    743743                 "ERROR: invalid dimension %d, value %lld given for SDS %s", 
    744                  i, dimensions[i], name); 
     744                 i, (long long)dimensions[i], name); 
    745745        NXReportError( pBuffer); 
    746746        return NX_ERROR; 
     
    873873        sprintf (pBuffer, 
    874874                 "ERROR: invalid dimension %d, value %lld given for SDS %s", 
    875                  i, dimensions[i], name); 
     875                 i, (long long)dimensions[i], name); 
    876876        NXReportError( pBuffer); 
    877877        return NX_ERROR; 
  • trunk/src/nxdataset.c

    r1648 r1649  
    3636pNXDS createNXDataset(int rank, int typecode, int64_t dim[]){ 
    3737  pNXDS pNew = NULL; 
    38   int i, length; 
     38  int64_t length; 
     39  int i; 
    3940 
    4041  pNew = (pNXDS)malloc(sizeof(NXDS)); 
     
    4344  } 
    4445 
    45   pNew->dim = (int *)malloc(rank*sizeof(int)); 
     46  pNew->dim = (int64_t *)malloc(rank*sizeof(int64_t)); 
    4647  for(i = 0, length = 1; i < rank; i++){ 
    4748    length *= dim[i]; 
     
    7374    return NULL; 
    7475  } 
    75   pNew->dim = (int *)malloc(sizeof(int)); 
     76  pNew->dim = (int64_t *)malloc(sizeof(int64_t)); 
    7677  pNew->u.cPtr = strdup(name); 
    7778  if(pNew->dim == NULL || pNew->u.ptr == NULL){ 
     
    160161  This calculates an arbitray address in C storage order 
    161162  -----------------------------------------------------------------------*/ 
    162 static int calculateAddress(pNXDS dataset, int pos[]){ 
    163   int result, mult; 
     163static int64_t calculateAddress(pNXDS dataset, int64_t pos[]){ 
     164  int64_t result, mult; 
    164165  int i, j; 
    165166 
     
    177178} 
    178179/*-----------------------------------------------------------------------*/ 
    179 double getNXDatasetValue(pNXDS dataset, int pos[]){ 
    180   int address; 
     180double getNXDatasetValue(pNXDS dataset, int64_t pos[]){ 
     181  int64_t address; 
    181182  
    182183  if(dataset == NULL){ 
     
    191192} 
    192193/*----------------------------------------------------------------------*/ 
    193 double getNXDatasetValueAt(pNXDS dataset, int address){ 
     194double getNXDatasetValueAt(pNXDS dataset, int64_t address){ 
    194195  double value; 
    195196 
     
    264265} 
    265266/*----------------------------------------------------------------------*/ 
    266 int   putNXDatasetValue(pNXDS dataset, int pos[], double value){ 
    267   int address; 
     267int   putNXDatasetValue(pNXDS dataset, int64_t pos[], double value){ 
     268  int64_t address; 
    268269 
    269270  if(dataset == NULL){ 
     
    278279} 
    279280  /*---------------------------------------------------------------------*/ 
    280 int putNXDatasetValueAt(pNXDS dataset, int address, double value){ 
     281int putNXDatasetValueAt(pNXDS dataset, int64_t address, double value){ 
    281282  /* 
    282283    this code is dangerous, it casts without checking the data range. 
  • trunk/src/nxdataset.h

    r1648 r1649  
    1919                   int rank; 
    2020                   int type; 
    21                    int *dim; 
     21                   int64_t *dim; 
    2222                   char *format; 
    2323                   union { 
     
    6565int   getNXDatasetByteLength(pNXDS dataset); 
    6666 
    67 double getNXDatasetValue(pNXDS dataset, int pos[]); 
    68 double getNXDatasetValueAt(pNXDS dataset, int address); 
     67double getNXDatasetValue(pNXDS dataset, int64_t pos[]); 
     68double getNXDatasetValueAt(pNXDS dataset, int64_t address); 
    6969char  *getNXDatasetText(pNXDS dataset); 
    7070 
    71 int   putNXDatasetValue(pNXDS dataset, int pos[], double value); 
    72 int   putNXDatasetValueAt(pNXDS dataset, int address, double value); 
     71int   putNXDatasetValue(pNXDS dataset, int64_t pos[], double value); 
     72int   putNXDatasetValueAt(pNXDS dataset, int64_t address, double value); 
    7373 
    7474#endif 
  • trunk/src/nxxml.c

    r1648 r1649  
    394394  if(rank > 1 || datatype == NX_CHAR || dimensions[0] > 1) { 
    395395    strcat(typestring,"["); 
    396     snprintf(pNumber,19,"%lld",dimensions[0]); 
     396    snprintf(pNumber,19,"%lld", (long long)dimensions[0]); 
    397397    strncat(typestring,pNumber,130-strlen(typestring)); 
    398398    for(i = 1; i < rank; i++){ 
    399       snprintf(pNumber,19,",%d",dimensions[i]); 
     399      snprintf(pNumber,19,",%lld", (long long)dimensions[i]); 
    400400      strncat(typestring,pNumber,130-strlen(typestring)); 
    401401    } 
     
    415415  char *typestring; 
    416416  int i, ndata;  
    417   static int one = 1; 
     417  static int64_t one = 1; 
    418418 
    419419  xmlHandle = (pXMLNexus)fid; 
     
    762762  mxml_node_t *current = NULL; 
    763763  pNXDS dataset; 
    764   int i, length, type, rank, dim[NX_MAXRANK]; 
     764  int i, length, type, rank;  
     765  int64_t dim[NX_MAXRANK]; 
    765766  char *pPtr = NULL; 
    766767 
     
    862863  mxml_node_t *current = NULL; 
    863864  pNXDS dataset; 
    864   int i, length, type, rank, dim[NX_MAXRANK]; 
     865  int i, length, type, rank;  
     866  int64_t dim[NX_MAXRANK]; 
    865867 
    866868  xmlHandle = (pXMLNexus)fid; 
     
    958960  the addressing and type conversion implemented in nxdataset 
    959961---------------------------------------------------------------------*/  
    960 static pNXDS makeSlabData(pNXDS dataset, void *data, int size[]){ 
     962static pNXDS makeSlabData(pNXDS dataset, void *data, int64_t size[]){ 
    961963  pNXDS slabData = NULL; 
    962964  int rank, i; 
     
    969971  rank = getNXDatasetRank(dataset); 
    970972  slabData->rank = rank; 
    971   slabData->dim = (int *)malloc(rank*sizeof(int)); 
     973  slabData->dim = (int64_t *)malloc(rank*sizeof(int64_t)); 
    972974  for(i = 0; i < rank; i++){ 
    973975    slabData->dim[i] = size[i]; 
     
    982984----------------------------------------------------------------------*/ 
    983985static void putSlabData(pNXDS dataset, pNXDS slabData, int dim, 
    984                         int start[],  
    985                         int sourcePos[],int targetPos[]){ 
    986   int i, rank, length; 
     986                        int64_t start[],  
     987                        int64_t sourcePos[],int64_t targetPos[]){ 
     988  int64_t i, rank, length; 
    987989 
    988990  rank = getNXDatasetRank(slabData); 
     
    10081010 -----------------------------------------------------------------------*/ 
    10091011static int checkAndExtendDataset(mxml_node_t *node, pNXDS dataset,  
    1010                                  int start[], int size[]){ 
    1011   int dim0, byteLength; 
     1012                                 int64_t start[], int64_t size[]){ 
     1013  int64_t dim0, byteLength; 
    10121014  void *oldData = NULL; 
    10131015  char *typestring = NULL; 
     
    10491051  mxml_node_t *current = NULL; 
    10501052  pNXDS dataset, slabData; 
    1051   int sourcePos[NX_MAXRANK], targetPos[NX_MAXRANK], status; 
     1053  int64_t sourcePos[NX_MAXRANK], targetPos[NX_MAXRANK]; 
     1054  int status; 
    10521055 
    10531056  xmlHandle = (pXMLNexus)fid; 
     
    10971100----------------------------------------------------------------------*/ 
    10981101static void getSlabData(pNXDS dataset, pNXDS slabData, int dim, 
    1099                         int start[],  
    1100                         int sourcePos[],int targetPos[]){ 
    1101   int i, rank, length; 
     1102                        int64_t start[],  
     1103                        int64_t sourcePos[],int64_t targetPos[]){ 
     1104  int64_t i, rank, length; 
    11021105 
    11031106  rank = getNXDatasetRank(slabData); 
     
    11261129  mxml_node_t *current = NULL; 
    11271130  pNXDS dataset, slabData; 
    1128   int sourcePos[NX_MAXRANK], targetPos[NX_MAXRANK]; 
     1131  int64_t sourcePos[NX_MAXRANK], targetPos[NX_MAXRANK]; 
    11291132 
    11301133  xmlHandle = (pXMLNexus)fid; 
Note: See TracChangeset for help on using the changeset viewer.