Changeset 8afe31 for molecuilder/src/helpers.cpp
- Timestamp:
- Oct 5, 2009, 4:05:53 PM (16 years ago)
- Children:
- 58808e
- Parents:
- e1f6d7 (diff), bf497f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 edited
-
molecuilder/src/helpers.cpp (modified) (4 diffs, 1 prop)
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/helpers.cpp
-
Property mode
changed from
100755to100644
re1f6d7 r8afe31 6 6 7 7 #include "helpers.hpp" 8 #include "memoryusageobserver.hpp" 8 9 9 10 /********************************************** helpful functions *********************************/ … … 34 35 void debug_in(const char *output, const char *file, const int line) {} // print nothing 35 36 #endif 36 37 /** Wrapper for allocating'ing a memory range with *output if it fails.38 * \param size number of chars to alloc for \a *buffer39 * \param *output message if malloc fails40 * \return pointer to memory range41 */42 void * Malloc(size_t size, const char* output)43 {44 void *buffer = NULL;45 buffer = (void *)malloc(size); // alloc46 if (buffer == NULL)47 cout << Verbose(0) << "Malloc failed - pointer is NULL: " << output << endl;48 return(buffer);49 };50 51 /** Wrapper for allocating'ing a memory range with *output if it fails.52 * \param size number of chars to alloc for \a *buffer53 * \param *output message if malloc fails54 * \return pointer to memory range55 */56 void * Calloc(size_t size, const char* output)57 {58 void *buffer = NULL;59 buffer = (void *)calloc(size, (size_t)0); // alloc60 if (buffer == NULL)61 cout << Verbose(0) << "Calloc failed - pointer is NULL: " << output << endl;62 return(buffer);63 };64 65 /** Wrapper for reallocating'ing a memory range with *output if it fails.66 * \param *OldPointer pointer to old memory range67 * \param size number of chars to alloc for \a *buffer68 * \param *output message if malloc fails69 * \return pointer to memory range70 */71 void * ReAlloc(void * OldPointer, size_t size, const char* output)72 {73 void *buffer = NULL;74 if (OldPointer == NULL)75 //cout << Verbose(0) << "ReAlloc impossible - old is NULL: " << output << endl;76 buffer = (void *)malloc(size); // malloc77 else78 buffer = (void *)realloc(OldPointer, size); // realloc79 if (buffer == NULL)80 cout << Verbose(0) << "ReAlloc failed - new is NULL: " << output << endl;81 return(buffer);82 };83 84 /** Wrapper for free'ing an allocated memory range with *output if it fails.85 * \param *buffer pointer to buffer to be free'd86 * \param *output message if free fails87 */88 void Free(void ** buffer, const char* output)89 {90 if (*buffer == NULL) {91 //cout << Verbose(5) << "Free not necesary: " << output << endl;92 } else {93 free(*buffer);94 *buffer = NULL;95 }96 };97 98 /** Malloc string array and set its length to the allocated length.99 * \param *output message if malloc fails100 * \param size number of chars to alloc for \a *buffer101 * \return pointer to string array102 */103 char* MallocString(size_t size, const char* output)104 {105 size_t i;106 char *buffer;107 buffer = (char *)malloc(sizeof(char) * (size+1)); // alloc108 if (buffer == NULL)109 cout << Verbose(0) << output << endl;110 for (i=size;i--;) // reset111 buffer[i] = i % 2 == 0 ? 'p': 'c';112 buffer[size] = '\0'; // and set length marker on its end113 return(buffer);114 }115 37 116 38 /** modulo operator for doubles. … … 170 92 } 171 93 // allocate string 172 returnstring = (char *) Malloc(sizeof(char)*(order+2), "FixedDigitNumber: *returnstring");94 returnstring = Malloc<char>(order + 2, "FixedDigitNumber: *returnstring"); 173 95 // terminate and fill string array from end backward 174 96 returnstring[order] = '\0'; … … 196 118 }; 197 119 120 /** 121 * Allocates a memory range using malloc(). 122 * Prints the provided error message in case of a failure. 123 * 124 * \param number of memory slices of type X to allocate 125 * \param failure message which is printed if the allocation fails 126 * \return pointer to the allocated memory range, will be NULL if a failure occurred 127 */ 128 template <> char* Malloc<char>(size_t size, const char* output) 129 { 130 char* buffer = NULL; 131 buffer = (char*) malloc(sizeof(char) * (size + 1)); 132 for (size_t i = size; i--;) 133 buffer[i] = (i % 2 == 0) ? 'p': 'c'; 134 buffer[size] = '\0'; 198 135 136 if (buffer != NULL) { 137 MemoryUsageObserver::getInstance()->addMemory(buffer, size); 138 } else { 139 cout << Verbose(0) << "Malloc for datatype " << typeid(char).name() 140 << " failed - pointer is NULL: " << output << endl; 141 } 142 143 return buffer; 144 }; 145 146 -
Property mode
changed from
Note:
See TracChangeset
for help on using the changeset viewer.
