[Vm-dev] VM Maker: VMMaker-oscog-golubovsky.137.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Jan 26 02:47:45 UTC 2012
Dmitry Golubovsky uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker-oscog-golubovsky.137.mcz
==================== Summary ====================
Name: VMMaker-oscog-golubovsky.137
Author: golubovsky
Time: 25 January 2012, 9:45:52 pm
UUID: fc3f3e0f-df8b-4181-846c-7b3f4784c57f
Ancestors: VMMaker-oscog-golubovsky.136
Added primGetSDCardRoot primitive
=============== Diff against VMMaker-oscog-golubovsky.136 ===============
Item was added:
+ ----- Method: AndroidPlugin>>primGetSDCardRoot (in category 'system primitives') -----
+ primGetSDCardRoot
+ | vmcls vmobj bmmeth jmsg res size oop ptr |
+ <var: 'res' type: 'char *'>
+ <var: 'vmcls' type: 'jclass'>
+ <var: 'vmobj' type: 'jobject'>
+ <var: 'bmmeth' type: 'jmethodID'>
+ <export: true>
+ vmcls := self getVMClass.
+ vmcls ifNil: [^ interpreterProxy primitiveFail].
+ vmobj := self getVMObject.
+ vmobj ifNil: [^ interpreterProxy primitiveFail].
+ bmmeth := self getMethod: 'getSDCardRoot' withSig: '()Ljava/lang/String;' inClass: vmcls.
+ bmmeth ifNil: [^ interpreterProxy primitiveFail].
+ res := self callStringMethod: bmmeth On: vmobj with: 0.
+ size := self strlen: res.
+ (size == 0) ifTrue: [^ interpreterProxy primitiveFail].
+ oop := interpreterProxy instantiateClass: interpreterProxy classString indexableSize: size.
+ ptr := interpreterProxy firstIndexableField: oop.
+ self memc: ptr p: res y: size.
+ self free: res.
+ interpreterProxy pop: 1.
+ interpreterProxy push: oop.
+ !
More information about the Vm-dev
mailing list