// cl_make_heap_string().
// General includes.
#include "cl_sysdep.h"
// Specification.
#include "cln/string.h"
// Implementation.
#include "cln/malloc.h"
#include "cl_offsetof.h"
namespace cln {
cl_heap_string* cl_make_heap_string (const char * s)
{
var unsigned long len = ::strlen(s);
var cl_heap_string* str = (cl_heap_string*) malloc_hook(offsetofa(cl_heap_string,data)+sizeof(char)*(len+1));
str->refcount = 1;
str->type = &cl_class_string;
str->length = len;
{
var const char* ptr1 = s;
var char* ptr2 = &str->data[0];
var uintL count;
for (count = len; count > 0; count--)
*ptr2++ = *ptr1++;
*ptr2++ = '\0';
}
return str;
}
} // namespace cln
syntax highlighted by Code2HTML, v. 0.9.1