mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-27 01:20:43 +00:00
Added #1459, #1832, #1849 AS1/2 direct editarion - Error dialog when saved value (UI16, SI16, ...) exceeds its limit and this code cannot be saved.
This commit is contained in:
@@ -167,7 +167,7 @@ public class SWFOutputStream extends OutputStream {
|
||||
*/
|
||||
public void writeUI8(int value) throws IOException {
|
||||
if (value > 0xff) {
|
||||
throw new IllegalArgumentException("Value is too large for UI8: " + value);
|
||||
throw new ValueTooLargeException("UI8", value);
|
||||
}
|
||||
|
||||
write(value);
|
||||
@@ -224,7 +224,7 @@ public class SWFOutputStream extends OutputStream {
|
||||
*/
|
||||
public void writeUI32(long value) throws IOException {
|
||||
if (value > 0xffffffffL) {
|
||||
throw new IllegalArgumentException("Value is too large for UI32: " + value);
|
||||
throw new ValueTooLargeException("UI32", value);
|
||||
}
|
||||
|
||||
write((int) (value & 0xff));
|
||||
@@ -241,7 +241,7 @@ public class SWFOutputStream extends OutputStream {
|
||||
*/
|
||||
public void writeUI16(int value) throws IOException {
|
||||
if (value > 0xffff) {
|
||||
throw new IllegalArgumentException("Value is too large for UI16: " + value);
|
||||
throw new ValueTooLargeException("UI16", value);
|
||||
}
|
||||
|
||||
write((int) (value & 0xff));
|
||||
@@ -256,7 +256,7 @@ public class SWFOutputStream extends OutputStream {
|
||||
*/
|
||||
public void writeSI32(long value) throws IOException {
|
||||
if (value > 0x7fffffffL) {
|
||||
throw new IllegalArgumentException("Value is too large for SI32: " + value);
|
||||
throw new ValueTooLargeException("SI32", value);
|
||||
}
|
||||
|
||||
writeUI32(value);
|
||||
@@ -271,8 +271,7 @@ public class SWFOutputStream extends OutputStream {
|
||||
public void writeSI16(int value) throws IOException {
|
||||
|
||||
if (value > 0x7fff) {
|
||||
Logger.getLogger(SWFOutputStream.class.getName()).log(Level.WARNING, "Value is too large for SI16: " + value + ", 0 written", new Exception());
|
||||
value = 0;
|
||||
throw new ValueTooLargeException("SI16", value);
|
||||
}
|
||||
|
||||
writeUI16(value);
|
||||
@@ -286,7 +285,7 @@ public class SWFOutputStream extends OutputStream {
|
||||
*/
|
||||
public void writeSI8(int value) throws IOException {
|
||||
if (value > 0x7ff) {
|
||||
throw new IllegalArgumentException("Value is too large for SI8: " + value);
|
||||
throw new ValueTooLargeException("SI8", value);
|
||||
}
|
||||
|
||||
writeUI8(value);
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) 2010-2021 JPEXS, All rights reserved.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3.0 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JPEXS
|
||||
*/
|
||||
public class ValueTooLargeException extends IllegalArgumentException {
|
||||
private final String type;
|
||||
private final Object value;
|
||||
|
||||
public ValueTooLargeException(String type, Object value) {
|
||||
super("Value is too large for " + type + ": " + value);
|
||||
this.type = type;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public Object getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user