[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