diff --git a/src/org/ntlab/deltaExtractor/DeltaExtractor.java b/src/org/ntlab/deltaExtractor/DeltaExtractor.java index 11dd99a..36291dd 100644 --- a/src/org/ntlab/deltaExtractor/DeltaExtractor.java +++ b/src/org/ntlab/deltaExtractor/DeltaExtractor.java @@ -149,6 +149,16 @@ } } + if (childMethodExecution != null && childMethodExecution.isStatic() && objList.contains(null)) { + // static�ȌĂяo�����this�Ɉˑ����� + removeList.add(thisObjectId); // ��ň�U�AthisObject ����菜�� + isTrackingThis = true; // �Ăяo�����T���O�ɕ��� + if (methodExecution.isStatic()) { + // �Ăяo������static�̏ꍇ + aliasCollector.addAlias(new Alias(Alias.AliasType.THIS, 0, methodExecution.getThisObjId(), tracePoint.duplicate())); // static�Ăяo�����G�C���A�X�Ƃ��ċL�^���� + } + } + if (childMethodExecution != null) { for (String objId : objList) { if (!objId.equals(childMethodExecution.getThisObjId())) { @@ -765,7 +775,7 @@ aliasCollector.changeTrackingObject(objectId, thisObjectId, false); aliasCollector.addAlias(new Alias(Alias.AliasType.THIS, 0, thisObjectId, tracePoint.duplicate())); } - if (Trace.isNull(thisObjectId)) objectId = null; // static�ϐ��̏ꍇ + if (Trace.isNull(thisObjectId)) objectId = null; // �Ăяo������static�̏ꍇ else objectId = thisObjectId; objList.set(index, objectId); isResolved = true; @@ -774,9 +784,10 @@ } objectId = objList.get(index); if (objectId == null) { - // static�Ăяo���̖߂�l�������ꍇ�i���Ԃ�j + // static�Ăяo���̖߂�l�������ꍇ trackingObj = null; isResolved = true; + aliasCollector.addAlias(new Alias(Alias.AliasType.THIS, 0, thisObjectId, tracePoint.duplicate())); // static�Ăяo�����G�C���A�X�Ƃ��ċL�^���� } else if (objectId.equals(srcObject.getId())) { trackingObj = srcObject; } else if (objectId.equals(dstObject.getId())) { @@ -935,8 +946,8 @@ } } - if (objectId == null && isResolved && !isStatic) { // static �Ăяo������̖߂�l��Ԃ��Ă���ꍇ - objList.set(index, thisObjectId); // ������ǐՂ����� + if (objectId == null && isResolved && !isStatic) { // static�ȌĂяo���悩��̖߂�l��ǐՂ������ʁA�Ăяo�����this�Ɉˑ��������A�������g��static�łȂ��ꍇ + objList.set(index, thisObjectId); // this�̒ǐՂ𕜊������� if (Trace.isNull(srcObject.getId())) { srcObject = thisObj; } else if (Trace.isNull(dstObject.getId())) {