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! |
Free forum by Nabble | Edit this page |