VM Maker: VMMaker-oscog-golubovsky.137.mcz

classic Classic list List threaded Threaded
1 message Options
commits-2 commits-2
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

VM Maker: VMMaker-oscog-golubovsky.137.mcz

 
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.
+ !

Loading...