summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
c54b743)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@5448
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
#define xbt_free free /*nothing specific to do here. A poor valgrind replacement?*/
/*#define xbt_free_fct free * replacement with the guareenty of being a function FIXME:KILLME*/
#define xbt_free free /*nothing specific to do here. A poor valgrind replacement?*/
/*#define xbt_free_fct free * replacement with the guareenty of being a function FIXME:KILLME*/
-/** @brief like free
- @hideinitializer */
+/** @brief like free, but you can be sure that it is a function */
XBT_PUBLIC(void) xbt_free_f(void* p);
XBT_PUBLIC(void) xbt_free_f(void* p);
+/** @brief should be given a pointer to pointer, and frees the second one */
+XBT_PUBLIC(void) xbt_free_ref(void *d);
/** @brief like calloc, but xbt_die() on error and don't memset to 0
@hideinitializer */
/** @brief like calloc, but xbt_die() on error and don't memset to 0
@hideinitializer */
+
+/* these two functions belong to xbt/sysdep.h, which have no corresponding .c file */
+/** @brief like free, but you can be sure that it is a function */
+XBT_PUBLIC(void) xbt_free_f(void* p) {
+ free(p);
+}
+
+/** @brief should be given a pointer to pointer, and frees the second one */
+XBT_PUBLIC(void) xbt_free_ref(void *d){
+ free(*(void**)d);
+}
+
-/** @brief like free
- @hideinitializer */
-XBT_PUBLIC(void) xbt_free_f(void* p) {
- free(p);
-}
-
-
/* TSC (tick-level) timers are said to be unreliable on SMP hosts and thus
disabled in SDL source code */
/* TSC (tick-level) timers are said to be unreliable on SMP hosts and thus
disabled in SDL source code */
#include "portable.h"
#include "xbt/matrix.h" /* for the diff */
#include "portable.h"
#include "xbt/matrix.h" /* for the diff */
-static void free_string(void *d){
- free(*(void**)d);
-}
-
/** @brief Strip whitespace (or other characters) from the end of a string.
*
* Strips the whitespaces from the end of s.
/** @brief Strip whitespace (or other characters) from the end of a string.
*
* Strips the whitespaces from the end of s.
*/
xbt_dynar_t xbt_str_split(const char *s, const char *sep) {
*/
xbt_dynar_t xbt_str_split(const char *s, const char *sep) {
- xbt_dynar_t res = xbt_dynar_new(sizeof(char*), free_string);
+ xbt_dynar_t res = xbt_dynar_new(sizeof(char*), xbt_free_ref);
const char *p, *q;
int done;
const char* sep_dflt = " \t\n\r\x0B";
const char *p, *q;
int done;
const char* sep_dflt = " \t\n\r\x0B";
* \return An array of dynars containing the string tokens
*/
xbt_dynar_t xbt_str_split_str(const char *s, const char *sep) {
* \return An array of dynars containing the string tokens
*/
xbt_dynar_t xbt_str_split_str(const char *s, const char *sep) {
- xbt_dynar_t res = xbt_dynar_new(sizeof(char*), free_string);
+ xbt_dynar_t res = xbt_dynar_new(sizeof(char*), xbt_free_ref);
int done;
const char *p, *q;
int done;
const char *p, *q;
*/
xbt_dynar_t xbt_str_split_quoted(const char *s) {
*/
xbt_dynar_t xbt_str_split_quoted(const char *s) {
- xbt_dynar_t res = xbt_dynar_new(sizeof(char*), free_string);
+ xbt_dynar_t res = xbt_dynar_new(sizeof(char*), xbt_free_ref);
char *str; /* we have to copy the string before, to handle backslashes */
char *beg, *end; /* pointers around the parsed chunk */
int in_simple_quote=0, in_double_quote=0;
char *str; /* we have to copy the string before, to handle backslashes */
char *beg, *end; /* pointers around the parsed chunk */
int in_simple_quote=0, in_double_quote=0;
xbt_dynar_t db = xbt_str_split(b, "\n");
xbt_matrix_t C = diff_build_LCS(da,db);
xbt_dynar_t db = xbt_str_split(b, "\n");
xbt_matrix_t C = diff_build_LCS(da,db);
- xbt_dynar_t diff = xbt_dynar_new(sizeof(char*),free_string);
+ xbt_dynar_t diff = xbt_dynar_new(sizeof(char*),xbt_free_ref);
char *res=NULL;
diff_build_diff(diff, C, da,db, xbt_dynar_length(da)-1, xbt_dynar_length(db)-1);
char *res=NULL;
diff_build_diff(diff, C, da,db, xbt_dynar_length(da)-1, xbt_dynar_length(db)-1);