- Timestamp:
- Nov 24, 2008, 5:09:38 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20081124/Ohana/src/opihi/lib.shell/VectorOps.c
r16887 r20827 18 18 19 19 for (i = 0; i < Nvectors; i++) { 20 free (vectors[i][0].elements); 20 if (vectors[i][0].elements) { 21 free (vectors[i][0].elements); 22 } 23 if (vectors[i][0].elementsInt) { 24 free (vectors[i][0].elementsInt); 25 } 21 26 free (vectors[i]); 22 27 } … … 28 33 29 34 ALLOCATE (vec, Vector, 1); 30 ALLOCATE (vec[0].elements, float, 1); 35 36 vec[0].elementsInt = NULL; 37 ALLOCATE (vec[0].elements, opihi_float, 1); 38 vec[0].type = OPIHI_FLOAT; /* is a float unless specified otherwise */ 39 31 40 bzero (vec[0].name, 1024); 32 41 vec[0].Nelements = 0; … … 95 104 if (i == Nvectors) return (FALSE); 96 105 97 free (vectors[i][0].elements); 106 if (vectors[i][0].elements) free (vectors[i][0].elements); 107 if (vectors[i][0].elementsInt) free (vectors[i][0].elementsInt); 98 108 free (vectors[i]); 99 109 … … 115 125 if (i == Nvectors) return (FALSE); 116 126 117 free (vectors[i][0].elements); 127 if (vectors[i][0].elements) free (vectors[i][0].elements); 128 if (vectors[i][0].elementsInt) free (vectors[i][0].elementsInt); 118 129 free (vectors[i]); 119 130 … … 137 148 free (out[0].elements); 138 149 out[0].Nelements = in[0].Nelements; 139 ALLOCATE (out[0].elements, float, out[0].Nelements); 140 memcpy (out[0].elements, in[0].elements, out[0].Nelements*sizeof(float)); 150 if (in[0].elements) { 151 assert (in[0].type == OPIHI_FLOAT); 152 ALLOCATE (out[0].elements, opihi_float, out[0].Nelements); 153 memcpy (out[0].elements, in[0].elements, out[0].Nelements*sizeof(opihi_float)); 154 out[0].type = OPIHI_FLOAT; 155 } else { 156 assert (in[0].type == OPIHI_INT); 157 ALLOCATE (out[0].elementsInt, opihi_int, out[0].Nelements); 158 memcpy (out[0].elementsInt, in[0].elementsInt, out[0].Nelements*sizeof(opihi_int)); 159 out[0].type = OPIHI_INT; 160 } 141 161 return (TRUE); 142 162 } … … 154 174 155 175 free (out[0].elements); 156 out[0].Nelements = in[0].Nelements; 157 out[0].elements = in[0].elements; 176 out[0].Nelements = in[0].Nelements; 177 out[0].elements = in[0].elements; 178 out[0].elementsInt = in[0].elementsInt; 179 out[0].type = in[0].type; 158 180 159 181 /* delete vector entry from vector list, if it exists */
Note:
See TracChangeset
for help on using the changeset viewer.
