VM Maker: FileAttributesPlugin.oscog-eem.50.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: FileAttributesPlugin.oscog-eem.50.mcz

commits-2
 
Eliot Miranda uploaded a new version of FileAttributesPlugin to project VM Maker:
http://source.squeak.org/VMMaker/FileAttributesPlugin.oscog-eem.50.mcz

==================== Summary ====================

Name: FileAttributesPlugin.oscog-eem.50
Author: eem
Time: 6 March 2019, 9:58:12.108207 am
UUID: b0ab4422-fbd0-4f63-bcc6-e505d2c61bb5
Ancestors: FileAttributesPlugin.oscog-akg.49

Simpification and simulaiton of primitiveFileExists & primitivePathMax, using the simpler and more efficient methodreturnXXX: protocol.

=============== Diff against FileAttributesPlugin.oscog-akg.49 ===============

Item was added:
+ ----- Method: FileAttributesPlugin>>faPathMax (in category 'private') -----
+ faPathMax
+ "Answer the value of the platform support's definition of FA_PATH_MAX, defined in
+ platforms/{unix.win32,etc}/plugins/FileAttributesPlugin/faSupport.h"
+ <inline: #always>
+ ^#FA_PATH_MAX!

Item was changed:
  ----- Method: FileAttributesPlugin>>primitiveFileExists (in category 'file primitives') -----
  primitiveFileExists
+ "Check for existence of a file with a call to access(), or the appropriate platform function."
- "Check for existence of a file with a call to access()."
 
- | fileNameOop faPath resultOop |
  <export: true>
+ | fileNameOop faPath |
+ <var: 'faPath' type: #'fapath'>
- <var: 'faPath'type: #'fapath'>
 
  self cCode: '' inSmalltalk: [faPath := self simulatedFaPath].
+ fileNameOop := interpreterProxy stackValue: 0.
- fileNameOop := interpreterProxy stackObjectValue: 0.
  (interpreterProxy isBytes: fileNameOop) ifFalse:
  [^interpreterProxy primitiveFailFor: PrimErrBadArgument].
 
  self faSetStPathOop: (self addressOf: faPath) _: fileNameOop.
+ interpreterProxy failed ifFalse:
+ [^interpreterProxy methodReturnBool: (self faExists: (self addressOf: faPath))]!
- interpreterProxy failed ifTrue: [^interpreterProxy primitiveFailureCode].
-
- resultOop := self faExists: (self addressOf: faPath).
- ^interpreterProxy methodReturnValue: resultOop.
- !

Item was changed:
  ----- Method: FileAttributesPlugin>>primitivePathMax (in category 'file primitives') -----
  primitivePathMax
+ "Answer the value of FA_PATH_MAX (PATH_MAX) for the current VM"
- "Answer the value of PATH_MAX for the current VM"
 
  <export: true>
+ ^interpreterProxy methodReturnInteger: self faPathMax!
- ^interpreterProxy pop: 1 thenPush: (interpreterProxy integerObjectOf: #FA_PATH_MAX)!

Item was changed:
  ----- Method: FileAttributesPluginSimulator>>faExists: (in category 'simulation') -----
  faExists: faPath
  "Simulate the the call by actually calling the primitive."
 
+ ^self primExists: (self faGetStPath: faPath)!
- ^(self primExists: (self faGetStPath: faPath))
- ifTrue: [interpreterProxy trueObject]
- ifFalse: [interpreterProxy falseObject].
- !

Item was added:
+ ----- Method: FileAttributesPluginSimulator>>faPathMax (in category 'primitives') -----
+ faPathMax
+ "Answer the VMs FA_PATH_MAX value"
+
+ <primitive: 'primitivePathMax' module: 'FileAttributesPlugin' error: error>
+ ^self signalError: error for: 'primPathMax'!

Item was removed:
- ----- Method: FileAttributesPluginSimulator>>primPathMax (in category 'primitives') -----
- primPathMax
- "Answer the VMs FA_PATH_MAX value"
-
- <primitive: 'primitivePathMax' module: 'FileAttributesPlugin' error: error>
- ^self signalError: error for: 'primPathMax'!

Item was removed:
- ----- Method: FileAttributesPluginSimulator>>primitivePathMax (in category 'simulation') -----
- primitivePathMax
- "Answer the value of FA_PATH_MAX for the current VM.
- It doesn't make sense to simulate this, just call the primitive"
-
- ^self primPathMax!