ext/sfcc/cim_string.c in sfcc-0.1.2 vs ext/sfcc/cim_string.c in sfcc-0.5.0

- old
+ new

@@ -1,23 +1,24 @@ #include "cim_string.h" static void -dealloc(CMPIString *string) +dealloc(CIMCString *string) { - SFCC_DEC_REFCOUNT(string); +/* fprintf(stderr, "dealloc(CIMCString %p\n", string); */ + string->ft->release(string); } /** * call-seq: * to_s * Generates a well formed string representation of this String */ static VALUE to_s(VALUE self) { - CMPIString *ptr = NULL; + CIMCString *ptr = NULL; char *str = NULL; - Data_Get_Struct(self, CMPIString, ptr); + Data_Get_Struct(self, CIMCString, ptr); str = ptr->ft->getCharPtr(ptr, NULL); return str ? rb_str_new2(str) : Qnil; } /** @@ -26,25 +27,20 @@ * Creates a CIM string from a string value * */ static VALUE new(VALUE klass, VALUE value) { - CMPIStatus status; - CMPIString *newstr = NULL; - CMPIString *ptr = newCMPIString(StringValuePtr(value), - &status); - newstr = ptr->ft->clone(ptr, &status); - ptr->ft->release(ptr); + CIMCStatus status; + CIMCString *ptr = cimcEnv->ft->newString(cimcEnv, to_charptr(value), &status); if (!status.rc) - return Sfcc_wrap_cim_string(newstr); + return Sfcc_wrap_cim_string(ptr); sfcc_rb_raise_if_error(status, "Can't create CIM string"); return Qnil; } VALUE -Sfcc_wrap_cim_string(CMPIString *string) +Sfcc_wrap_cim_string(CIMCString *string) { - SFCC_INC_REFCOUNT(string); return Data_Wrap_Struct(cSfccCimString, NULL, dealloc, string); } VALUE cSfccCimString; void init_cim_string()