php_vm 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/ext/php_vm/php_vm.c CHANGED
@@ -315,7 +315,7 @@ zend_class_entry* get_zend_class_entry(VALUE self)
315
315
  }
316
316
 
317
317
  PHPNativeResource *p;
318
- Data_Get_Struct(rb_iv_get(self, "php_native_resource"), PHPNativeResource, p);
318
+ Data_Get_Struct(resource, PHPNativeResource, p);
319
319
  if (p) {
320
320
  return p->ce;
321
321
  }
@@ -330,7 +330,7 @@ zval* get_zval(VALUE self)
330
330
  }
331
331
 
332
332
  PHPNativeResource *p;
333
- Data_Get_Struct(rb_iv_get(self, "php_native_resource"), PHPNativeResource, p);
333
+ Data_Get_Struct(resource, PHPNativeResource, p);
334
334
  if (p) {
335
335
  return p->zobj;
336
336
  }
@@ -421,6 +421,7 @@ VALUE rb_php_class_initialize(VALUE self, VALUE v_name)
421
421
  // set resource
422
422
  PHPNativeResource *p = ALLOC(PHPNativeResource);
423
423
  p->ce = *ce;
424
+ p->zobj = NULL;
424
425
  VALUE resource = Data_Wrap_Struct(CLASS_OF(self), 0, php_native_resource_delete, p);
425
426
  rb_iv_set(self, "php_native_resource", resource);
426
427
 
@@ -538,7 +539,7 @@ void Init_php_vm()
538
539
  rb_define_singleton_method(rb_mPHPVM, "exec", rb_php_vm_exec, 1);
539
540
  rb_define_singleton_method(rb_mPHPVM, "getClass", rb_php_vm_getClass, 1);
540
541
 
541
- rb_define_const(rb_mPHPVM, "VERSION", rb_str_new2("1.0.3"));
542
+ rb_define_const(rb_mPHPVM, "VERSION", rb_str_new2("1.0.4"));
542
543
 
543
544
  // class PHPVM::PHPClass
544
545
  rb_cPHPClass = rb_define_class_under(rb_mPHPVM, "PHPClass", rb_cObject);
@@ -76,11 +76,10 @@ void value_to_zval(VALUE v, zval *z)
76
76
  break;
77
77
  // object string
78
78
  default:{
79
- VALUE cls = CLASS_OF(v);
80
- if (cls==rb_cPHPObject || cls==rb_ePHPExceptionObject) {
81
- // wrap php object
82
- // TODO
83
- z = get_zval(v);
79
+ zval *resource_zobj = get_zval(v);
80
+ if (resource_zobj) {
81
+ // php native resource
82
+ *z = *resource_zobj;
84
83
  } else {
85
84
  // other to_s
86
85
  v = rb_obj_as_string(v);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: php_vm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-23 00:00:00.000000000 Z
12
+ date: 2012-12-24 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: php_vm is a native bridge between Ruby and PHP.
15
15
  email: