MODULE STEMP ( IDENT = 'X00.06' %TITLE 'Temporary String Deallocation' %BLISS32( ,ADDRESSING_MODE( EXTERNAL=LONG_RELATIVE ) ) %BLISS36( ,ENTRY( XST$FREE_TEMP ),OTS='' ) ) = BEGIN ! ! COPYRIGHT (c) 1980 BY ! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ! ! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ! TRANSFERRED. ! ! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ! CORPORATION. ! ! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. ! !++ ! ! FACILITY: BLISS Library ! ! ABSTRACT: ! ! This module is the XPORT Temporary String allocator/deallocator. ! ! ENVIRONMENT: User mode - multiple host operating/file systems ! ! AUTHOR: Ward Clark, CREATION DATE: 15-Feb-80 ! !-- ! ! TABLE OF CONTENTS: ! FORWARD ROUTINE XST$FREE_TEMP; ! Temporary string deallocation routine ! ! INCLUDE FILES: ! LIBRARY 'XPORT' ; ! Public XPORT control block and macro definitions LIBRARY 'XPOSYS' ; ! Internal XPORT macro definitions $XPO_SYS_TEST( $ALL ) ! ! MACROS: ! ! ! EQUATED SYMBOLS: ! ! ! PSECT DECLARATIONS: ! $XPO_PSECTS ! Declare XPORT PSECT names and attributes ! ! OWN STORAGE: ! ! ! EXTERNAL REFERENCES: ! %TITLE 'XST$FREE_TEMP - Temporary String Deallocation' GLOBAL ROUTINE XST$FREE_TEMP( string ) = !++ ! ! FUNCTIONAL DESCRIPTION: ! ! This routine deallocates a dynamic XPORT temporary string and ! its associated string descriptor. ! ! FORMAL PARAMETERS: ! ! string - address of a string descriptor ! ! IMPLICIT INPUTS: ! ! None ! ! IMPLICIT OUTPUTS: ! ! None ! ! COMPLETION CODES: ! ! STR$_NOT_TEMP - the string was not an XPORT temporary string ! or ! success or failure completion code from $XPO_FREE_MEM ! ! SIDE EFFECTS: ! ! None ! !-- BEGIN MAP string : REF $STR_DESCRIPTOR( CLASS = BOUNDED ); ! ! Free an XPORT temporary string. ! IF .string[STR$B_CLASS] EQL STR$K_CLASS_XT AND .string[STR$H_LENGTH] NEQ 0 THEN $XPO_IF_NOT( $XPO_FREE_MEM( STRING = string[$BASE], FAILURE = 0 ) ) THEN RETURN .$XPO_STATUS; ! ! Free an XPORT temporary string descriptor. ! IF .string[STR$B_CLASS] EQL STR$K_CLASS_XT THEN RETURN $XPO_FREE_MEM( BINARY_DATA = (STR$K_XT_BLN,string[$BASE]), FAILURE = 0 ); ! ! Return to the caller in all other cases. ! RETURN STR$_NOT_TEMP END; END ELUDOM