Revision c43abe6c
Added by Leszek Koltunski about 5 years ago
src/main/java/org/distorted/library/main/DistortedOutputSurface.java | ||
---|---|---|
1041 | 1041 |
public void doWork() |
1042 | 1042 |
{ |
1043 | 1043 |
int num = mJobs.size(); |
1044 |
Job job; |
|
1045 | 1044 |
|
1046 |
for(int i=0; i<num; i++)
|
|
1045 |
if( num>0 )
|
|
1047 | 1046 |
{ |
1048 |
job = mJobs.remove(0);
|
|
1047 |
Job job;
|
|
1049 | 1048 |
|
1050 |
switch(job.type)
|
|
1049 |
for(int i=0; i<num; i++)
|
|
1051 | 1050 |
{ |
1052 |
case ATTACH: if( mChildren==null ) mChildren = new ArrayList<>(2); |
|
1053 |
job.node.setSurfaceParent(this); |
|
1054 |
DistortedMaster.addSortingByBuckets(mChildren,job.node); |
|
1055 |
mNumChildren++; |
|
1056 |
break; |
|
1057 |
case DETACH: if( mNumChildren>0 && mChildren.remove(job.node) ) |
|
1058 |
{ |
|
1059 |
job.node.setSurfaceParent(null); |
|
1060 |
mNumChildren--; |
|
1061 |
} |
|
1062 |
break; |
|
1063 |
case DETALL: if( mNumChildren>0 ) |
|
1064 |
{ |
|
1065 |
DistortedNode tmp; |
|
1066 |
|
|
1067 |
for(int j=mNumChildren-1; j>=0; j--) |
|
1051 |
job = mJobs.remove(0); |
|
1052 |
|
|
1053 |
switch(job.type) |
|
1054 |
{ |
|
1055 |
case ATTACH: if( mChildren==null ) mChildren = new ArrayList<>(2); |
|
1056 |
job.node.setSurfaceParent(this); |
|
1057 |
DistortedMaster.addSortingByBuckets(mChildren,job.node); |
|
1058 |
mNumChildren++; |
|
1059 |
break; |
|
1060 |
case DETACH: if( mNumChildren>0 && mChildren.remove(job.node) ) |
|
1068 | 1061 |
{ |
1069 |
tmp = mChildren.remove(j);
|
|
1070 |
tmp.setSurfaceParent(null);
|
|
1062 |
job.node.setSurfaceParent(null);
|
|
1063 |
mNumChildren--;
|
|
1071 | 1064 |
} |
1065 |
break; |
|
1066 |
case DETALL: if( mNumChildren>0 ) |
|
1067 |
{ |
|
1068 |
DistortedNode tmp; |
|
1069 |
|
|
1070 |
for(int j=mNumChildren-1; j>=0; j--) |
|
1071 |
{ |
|
1072 |
tmp = mChildren.remove(j); |
|
1073 |
tmp.setSurfaceParent(null); |
|
1074 |
} |
|
1072 | 1075 |
|
1073 |
mNumChildren = 0; |
|
1074 |
} |
|
1075 |
break; |
|
1076 |
case SORT : mChildren.remove(job.node); |
|
1077 |
DistortedMaster.addSortingByBuckets(mChildren,job.node); |
|
1078 |
break; |
|
1076 |
mNumChildren = 0; |
|
1077 |
} |
|
1078 |
break; |
|
1079 |
case SORT : mChildren.remove(job.node); |
|
1080 |
DistortedMaster.addSortingByBuckets(mChildren,job.node); |
|
1081 |
break; |
|
1082 |
} |
|
1079 | 1083 |
} |
1080 | 1084 |
} |
1081 | 1085 |
} |
Also available in: Unified diff
Fixes for memory leak problems uncovered by the 'Rubik' app. (mainly: new method DistortedNode.markForDeletion)