Check-in [0e65fd55b2]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Minor adjustment to ASTORE.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:0e65fd55b2d51c0a9b5b577c01bbaeaad06f6835
User & Date: stephanie.gawroriski 2019-06-12 21:19:49
Context
2019-06-12
21:54
Correct CHECKCAST where it would place un-cached entries on the stack when they should be cached. check-in: 844222f1c4 user: stephanie.gawroriski tags: trunk
21:19
Minor adjustment to ASTORE. check-in: 0e65fd55b2 user: stephanie.gawroriski tags: trunk
19:56
Adjust SXS script to be called outside the temporary directory. check-in: 2a59f5e05d user: stephanie.gawroriski tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to runt/libs/tool-classfile/dev/shadowtail/classfile/xlate/JavaStackResult.java.

411
412
413
414
415
416
417











418
419
420
421
422
423
424
			if (__cl == null)
				throw new NullPointerException("NARG");
			
			JavaType type = this.type;
			return (type.isObject() || type.isPrimitive()) &&
				__cl.equals(type.className());
		}











		
		/**
		 * {@inheritDoc}
		 * @since 2019/03/31
		 */
		@Override
		public final String toString()







>
>
>
>
>
>
>
>
>
>
>







411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
			if (__cl == null)
				throw new NullPointerException("NARG");
			
			JavaType type = this.type;
			return (type.isObject() || type.isPrimitive()) &&
				__cl.equals(type.className());
		}
		
		/**
		 * Is this an object?
		 *
		 * @return If this is an object.
		 * @since 2019/06/12
		 */
		public final boolean isObject()
		{
			return this.type.isObject();
		}
		
		/**
		 * {@inheritDoc}
		 * @since 2019/03/31
		 */
		@Override
		public final String toString()

Changes to runt/libs/tool-classfile/dev/shadowtail/classfile/xlate/JavaStackState.java.

593
594
595
596
597
598
599
600
601
602
603
604
605

606
607
608
609
610
611
612
			popped.type, __l);
		
		// Copy old operations over to add more potentially
		List<StateOperation> lsops = new ArrayList<>();
		for (StateOperation sop : stacksto.operations())
			lsops.add(sop);
		
		// If the stack entry is not counting then we need to count it
		// when it stored in the local because all locals are not cachable
		// Make sure it is counted before the copy just in case there are
		// any kludge operation
		JavaStackResult.Output out = stacksto.out(0);
		if (popped.nocounting && !out.nocounting)

			lsops.add(0, StateOperation.count(popped.register));
		
		// The two states are nearly combined but most of the result comes
		// from the actual push
		return new JavaStackResult(this,
			stacksto.after,
			stacksto.enqueue,







|
<
<
<

<
>







593
594
595
596
597
598
599
600



601

602
603
604
605
606
607
608
609
			popped.type, __l);
		
		// Copy old operations over to add more potentially
		List<StateOperation> lsops = new ArrayList<>();
		for (StateOperation sop : stacksto.operations())
			lsops.add(sop);
		
		// If we are storing an object, make sure it is counted



		JavaStackResult.Output out = stacksto.out(0);

		if (popped.isObject() && popped.nocounting)
			lsops.add(0, StateOperation.count(popped.register));
		
		// The two states are nearly combined but most of the result comes
		// from the actual push
		return new JavaStackResult(this,
			stacksto.after,
			stacksto.enqueue,