Inline sdslen and sdsavail (thanks to @bitbckt)

This commit is contained in:
Pieter Noordhuis 2011-04-19 22:59:26 +02:00
parent d5b18b5d28
commit cd7063e85b
2 changed files with 11 additions and 11 deletions

12
sds.c
View File

@ -30,11 +30,11 @@
#define SDS_ABORT_ON_OOM #define SDS_ABORT_ON_OOM
#include "sds.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
#include "sds.h"
static void sdsOomAbort(void) { static void sdsOomAbort(void) {
fprintf(stderr,"SDS: Out Of Memory (SDS_ABORT_ON_OOM defined)\n"); fprintf(stderr,"SDS: Out Of Memory (SDS_ABORT_ON_OOM defined)\n");
@ -69,11 +69,6 @@ sds sdsnew(const char *init) {
return sdsnewlen(init, initlen); return sdsnewlen(init, initlen);
} }
size_t sdslen(const sds s) {
struct sdshdr *sh = (void*) (s-(sizeof(struct sdshdr)));
return sh->len;
}
sds sdsdup(const sds s) { sds sdsdup(const sds s) {
return sdsnewlen(s, sdslen(s)); return sdsnewlen(s, sdslen(s));
} }
@ -83,11 +78,6 @@ void sdsfree(sds s) {
free(s-sizeof(struct sdshdr)); free(s-sizeof(struct sdshdr));
} }
size_t sdsavail(sds s) {
struct sdshdr *sh = (void*) (s-(sizeof(struct sdshdr)));
return sh->free;
}
void sdsupdatelen(sds s) { void sdsupdatelen(sds s) {
struct sdshdr *sh = (void*) (s-(sizeof(struct sdshdr))); struct sdshdr *sh = (void*) (s-(sizeof(struct sdshdr)));
int reallen = strlen(s); int reallen = strlen(s);

10
sds.h
View File

@ -42,6 +42,16 @@ struct sdshdr {
char buf[]; char buf[];
}; };
static inline size_t sdslen(const sds s) {
struct sdshdr *sh = (void*)(s-(sizeof(struct sdshdr)));
return sh->len;
}
static inline size_t sdsavail(const sds s) {
struct sdshdr *sh = (void*)(s-(sizeof(struct sdshdr)));
return sh->free;
}
sds sdsnewlen(const void *init, size_t initlen); sds sdsnewlen(const void *init, size_t initlen);
sds sdsnew(const char *init); sds sdsnew(const char *init);
sds sdsempty(void); sds sdsempty(void);