php_vm 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
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: