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()