Skip to content

Commit 4b97c08

Browse files
committed
Be defensive in NativeType.copy() methods: Act like createVariable() if no dataAccess is set
1 parent 81a5018 commit 4b97c08

23 files changed

+45
-24
lines changed

src/main/java/net/imglib2/type/label/BasePairBitType.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,10 @@ public BasePairBitType createVariable()
179179
@Override
180180
public BasePairBitType copy()
181181
{
182-
return new BasePairBitType( this.get() );
182+
if ( dataAccess != null )
183+
return new BasePairBitType( this.get() );
184+
else
185+
return createVariable();
183186
}
184187

185188
@Override

src/main/java/net/imglib2/type/label/BasePairCharType.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,10 @@ public BasePairCharType createVariable()
184184
@Override
185185
public BasePairCharType copy()
186186
{
187-
return new BasePairCharType( get() );
187+
if ( dataAccess != null )
188+
return new BasePairCharType( get() );
189+
else
190+
return createVariable();
188191
}
189192

190193
@Override

src/main/java/net/imglib2/type/logic/BitType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ public BitType createVariable()
309309
@Override
310310
public BitType copy()
311311
{
312-
return new BitType( get() );
312+
return new BitType( dataAccess != null ? get() : false );
313313
}
314314

315315
@Override

src/main/java/net/imglib2/type/logic/NativeBoolType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ public NativeBoolType createVariable()
269269
@Override
270270
public NativeBoolType copy()
271271
{
272-
return new NativeBoolType( get() );
272+
return new NativeBoolType( dataAccess != null ? get() : false );
273273
}
274274

275275
@Override

src/main/java/net/imglib2/type/numeric/ARGBType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ public ARGBType createVariable()
254254
@Override
255255
public ARGBType copy()
256256
{
257-
return new ARGBType( get() );
257+
return new ARGBType( dataAccess != null ? get() : 0 );
258258
}
259259

260260
@Override

src/main/java/net/imglib2/type/numeric/NativeARGBDoubleType.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,10 @@ public NativeARGBDoubleType createVariable()
186186
@Override
187187
public NativeARGBDoubleType copy()
188188
{
189-
return new NativeARGBDoubleType( getA(), getR(), getG(), getB() );
189+
if ( dataAccess != null )
190+
return new NativeARGBDoubleType( getA(), getR(), getG(), getB() );
191+
else
192+
return createVariable();
190193
}
191194

192195
@Override

src/main/java/net/imglib2/type/numeric/complex/ComplexDoubleType.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,10 @@ public ComplexDoubleType createVariable()
187187
@Override
188188
public ComplexDoubleType copy()
189189
{
190-
return new ComplexDoubleType( getRealFloat(), getImaginaryFloat() );
190+
if ( dataAccess != null )
191+
return new ComplexDoubleType( getRealFloat(), getImaginaryFloat() );
192+
else
193+
return createVariable();
191194
}
192195

193196
@Override

src/main/java/net/imglib2/type/numeric/complex/ComplexFloatType.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,10 @@ public ComplexFloatType createVariable()
240240
@Override
241241
public ComplexFloatType copy()
242242
{
243-
return new ComplexFloatType( getRealFloat(), getImaginaryFloat() );
243+
if ( dataAccess != null )
244+
return new ComplexFloatType( getRealFloat(), getImaginaryFloat() );
245+
else
246+
return createVariable();
244247
}
245248

246249
@Override

src/main/java/net/imglib2/type/numeric/integer/ByteType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,6 @@ public ByteType createVariable()
153153
@Override
154154
public ByteType copy()
155155
{
156-
return new ByteType( getByte() );
156+
return new ByteType( dataAccess != null ? get() : 0 );
157157
}
158158
}

src/main/java/net/imglib2/type/numeric/integer/IntType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,6 @@ public IntType createVariable()
153153
@Override
154154
public IntType copy()
155155
{
156-
return new IntType( getInt() );
156+
return new IntType( dataAccess != null ? get() : 0 );
157157
}
158158
}

0 commit comments

Comments
 (0)