70 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
| 42800 #include "rundecs.h"
 | |
| 42810     (*  COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER  *)
 | |
| 42820 (**)
 | |
| 42830 (**)
 | |
| 42840 PROCEDURE GARBAGE (ANOBJECT: OBJECTP); EXTERN ;
 | |
| 42850 (**)
 | |
| 42860 (**)
 | |
| 42870 PROCEDURE RANGEXT;
 | |
| 42880 (*PRANGEXT*)
 | |
| 42890 (*+01()  EXTERN; ()+01*)
 | |
| 42900 (*+05()  EXTERN; ()+05*)
 | |
| 42910 (*-01() (*-05()
 | |
| 42920   VAR LASTRG: PRANGE;
 | |
| 42930       IDP: PIDBLK ;
 | |
| 42940       PP: OBJECTPP ;
 | |
| 42950       I, J: INTEGER;
 | |
| 42960   BEGIN
 | |
| 42970   WITH FIRSTRG.RIBOFFSET^ DO
 | |
| 42980    WITH FIRSTW DO
 | |
| 42990     BEGIN
 | |
| 43000     IDP := RGIDBLK ;
 | |
| 43010     IF FIRSTRG.RIBOFFSET^.RIBOFFSET = FIRSTRG.RIBOFFSET THEN (*PARAMS*)
 | |
| 43020 (*-41() PP := INCPTR(RGNEXTFREE, -PROCBL^.PARAMS) ()-41*)
 | |
| 43030 (*+41() PP := INCPTR(RGLASTUSED, +PROCBL^.PARAMS) ()+41*)
 | |
| 43040     ELSE
 | |
| 43050       (*-41() PP := INCPTR ( FIRSTRG.RIBOFFSET , RGCONST ) ; ()-41*)
 | |
| 43060       (*+41()  PP := ASPTR ( ORD( FIRSTRG.RIBOFFSET ) ) ; ()+41*)
 | |
| 43070     FIRSTRG.RIBOFFSET := RIBOFFSET ;
 | |
| 43080     (*-41() WHILE ORD (PP) < ORD (RGNEXTFREE) DO ()-41*)
 | |
| 43090     (*+41() WHILE ORD (PP) > ORD (RGLASTUSED) DO ()+41*)
 | |
| 43100       BEGIN
 | |
| 43110         IDP := INCPTR (IDP , -SZIDBLOCK) ;
 | |
| 43120         WITH IDP^ DO
 | |
| 43130           BEGIN
 | |
| 43140             IF IDSIZE = 0 THEN
 | |
| 43150               BEGIN
 | |
| 43160                 (*+41() PP := INCPTR( PP , - SZADDR ) ; ()+41*)
 | |
| 43170                 WITH PP^^ DO
 | |
| 43180                   BEGIN
 | |
| 43190                     FDEC;
 | |
| 43200                     IF FTST THEN GARBAGE (PP^)
 | |
| 43210                   END ;
 | |
| 43220                 (*-41() PP := INCPTR( PP , SZADDR ) ()-41*)
 | |
| 43230               END
 | |
| 43240             ELSE PP := INCPTR( PP , (*+41() - ()+41*) IDSIZE )
 | |
| 43250           END
 | |
| 43260       END
 | |
| 43270     END
 | |
| 43280   END;
 | |
| 43290 (**)
 | |
| 43300 (**)
 | |
| 43310 FUNCTION RANGXTP(ANOBJECT: OBJECTP): OBJECTP;
 | |
| 43320 (*PRANGEXT+2*)
 | |
| 43330     BEGIN
 | |
| 43340     WITH ANOBJECT^ DO FINC;
 | |
| 43350     RANGEXT;
 | |
| 43360     WITH ANOBJECT^ DO FDEC;
 | |
| 43370     RANGXTP := ANOBJECT;
 | |
| 43380     END;
 | |
| 43390 ()-05*) ()-01*)
 | |
| 43400 (**)
 | |
| 43410 (**)
 | |
| 43420 (*-02()
 | |
| 43430   BEGIN
 | |
| 43440   END ;
 | |
| 43450 ()-02*)
 | |
| 43460 (*+01()
 | |
| 43470 BEGIN (*OF MAIN PROGRAM*)
 | |
| 43480 END (*OF EVERYTHING*).
 | |
| 43490 ()+01*)
 |