mirror of
https://github.com/Noratrieb/coldsquare.git
synced 2026-01-15 08:55:10 +01:00
Merge remote-tracking branch 'origin/master'
# Conflicts: # crates/file-info/src/ui.rs
This commit is contained in:
commit
a1620476d8
8 changed files with 105 additions and 63 deletions
|
|
@ -38,7 +38,7 @@ impl<'a> Data<'a> {
|
|||
fn u1(&mut self) -> Result<u1> {
|
||||
let item = self.data.get(self.pointer).cloned();
|
||||
self.pointer += 1;
|
||||
item.ok_or(ParseErr("No u1 left".to_string()))
|
||||
item.ok_or_else(|| ParseErr("No u1 left".to_string()))
|
||||
}
|
||||
|
||||
fn u2(&mut self) -> Result<u2> {
|
||||
|
|
@ -60,7 +60,7 @@ impl<'a> Data<'a> {
|
|||
self.data
|
||||
.get(self.pointer - 1)
|
||||
.cloned()
|
||||
.ok_or(ParseErr("Last u1 not found".to_string()))
|
||||
.ok_or_else(|| ParseErr("Last u1 not found".to_string()))
|
||||
}
|
||||
|
||||
fn last_u2(&self) -> Result<u2> {
|
||||
|
|
@ -68,7 +68,7 @@ impl<'a> Data<'a> {
|
|||
.data
|
||||
.get(self.pointer - 2)
|
||||
.cloned()
|
||||
.ok_or(ParseErr("Last u2 not found".to_string()))?;
|
||||
.ok_or_else(|| ParseErr("Last u2 not found".to_string()))?;
|
||||
Ok(((last2u1 as u2) << 8) | self.last_u1()? as u2)
|
||||
}
|
||||
|
||||
|
|
@ -77,12 +77,12 @@ impl<'a> Data<'a> {
|
|||
.data
|
||||
.get(self.pointer - 3)
|
||||
.cloned()
|
||||
.ok_or(ParseErr("Last 2 u1 in last u4 not found".to_string()))?;
|
||||
.ok_or_else(|| ParseErr("Last 2 u1 in last u4 not found".to_string()))?;
|
||||
let last3u1 = self
|
||||
.data
|
||||
.get(self.pointer - 4)
|
||||
.cloned()
|
||||
.ok_or(ParseErr("Last 3 u1 in last u4 not found".to_string()))?;
|
||||
.ok_or_else(|| ParseErr("Last 3 u1 in last u4 not found".to_string()))?;
|
||||
Ok(((last3u1 as u4) << 24) | ((last2u1 as u4) << 16) | self.last_u2()? as u4)
|
||||
}
|
||||
}
|
||||
|
|
@ -262,7 +262,7 @@ impl Parse for CpInfo {
|
|||
name_and_type_index: data.cp(cp)?,
|
||||
}),
|
||||
},
|
||||
_ => Err(ParseErr(format!("Invalid CPInfo tag: {}", tag)))?,
|
||||
_ => return Err(ParseErr(format!("Invalid CPInfo tag: {}", tag))),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -346,10 +346,12 @@ impl Parse for StackMapFrame {
|
|||
locals: parse_vec(data.u2()?, data, cp)?,
|
||||
stack: parse_vec(data.u2()?, data, cp)?,
|
||||
},
|
||||
_ => Err(ParseErr(format!(
|
||||
"Invalid StackMapFrame type: {}",
|
||||
frame_type
|
||||
)))?,
|
||||
_ => {
|
||||
return Err(ParseErr(format!(
|
||||
"Invalid StackMapFrame type: {}",
|
||||
frame_type
|
||||
)))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -373,10 +375,12 @@ impl Parse for VerificationTypeInfo {
|
|||
tag,
|
||||
offset: data.u2()?,
|
||||
},
|
||||
_ => Err(ParseErr(format!(
|
||||
"Invalid VerificationTypeInfo tag: {}",
|
||||
tag
|
||||
)))?,
|
||||
_ => {
|
||||
return Err(ParseErr(format!(
|
||||
"Invalid VerificationTypeInfo tag: {}",
|
||||
tag
|
||||
)))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -461,10 +465,12 @@ impl Parse for AnnotationElementValueValue {
|
|||
'[' => Self::ArrayValue {
|
||||
values: parse_vec(data.u2()?, data, cp)?,
|
||||
},
|
||||
_ => Err(ParseErr(format!(
|
||||
"Invalid AnnotationElementValueValue tag: {}",
|
||||
tag
|
||||
)))?,
|
||||
_ => {
|
||||
return Err(ParseErr(format!(
|
||||
"Invalid AnnotationElementValueValue tag: {}",
|
||||
tag
|
||||
)))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -551,7 +557,7 @@ impl AttributeInfo {
|
|||
_ => return Err(ParseErr("Constant Pool index out of Bounds".to_string())),
|
||||
};
|
||||
|
||||
let mut data = Data::new(&content);
|
||||
let mut data = Data::new(content);
|
||||
self.resolve_attribute_inner(index, len, info, &mut data, pool)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -467,29 +467,29 @@ pub enum ClassAccessFlag {
|
|||
#[repr(u16)]
|
||||
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
|
||||
pub enum MethodAccessFlag {
|
||||
// Declared public; may be accessed from outside its package.
|
||||
/// Declared public; may be accessed from outside its package.
|
||||
PUBLIC = 0x0001,
|
||||
// Declared private; accessible only within the defining class.
|
||||
/// Declared private; accessible only within the defining class.
|
||||
PRIVATE = 0x0002,
|
||||
// Declared protected; may be accessed within subclasses.
|
||||
/// Declared protected; may be accessed within subclasses.
|
||||
PROTECTED = 0x0004,
|
||||
// Declared static.
|
||||
/// Declared static.
|
||||
STATIC = 0x0008,
|
||||
// Declared final; must not be overridden.
|
||||
/// Declared final; must not be overridden.
|
||||
FINAL = 0x0010,
|
||||
// Declared synchronized; invocation is wrapped by a monitor use.
|
||||
/// Declared synchronized; invocation is wrapped by a monitor use.
|
||||
SYNCHRONIZED = 0x0020,
|
||||
// A bridge method, generated by the compiler.
|
||||
/// A bridge method, generated by the compiler.
|
||||
BRIDGE = 0x0040,
|
||||
// Declared with variable number of arguments.
|
||||
/// Declared with variable number of arguments.
|
||||
VARARGS = 0x0080,
|
||||
// Declared native; implemented in a language other than Java.
|
||||
/// Declared native; implemented in a language other than Java.
|
||||
NATIVE = 0x0100,
|
||||
// Declared abstract; no implementation is provided.
|
||||
/// Declared abstract; no implementation is provided.
|
||||
ABSTRACT = 0x0400,
|
||||
// Declared strictfp; floating-point mode is FP-strict.
|
||||
/// Declared strictfp; floating-point mode is FP-strict.
|
||||
STRICT = 0x0800,
|
||||
// Declared synthetic; not present in the source code.
|
||||
// /Declared synthetic; not present in the source code.
|
||||
SYNTHETIC = 0x1000,
|
||||
}
|
||||
|
||||
|
|
@ -497,23 +497,23 @@ pub enum MethodAccessFlag {
|
|||
#[repr(u16)]
|
||||
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
|
||||
pub enum InnerClassAccessFlags {
|
||||
/// Marked or implicitly public in source.
|
||||
/// Marked or implicitly public in source.
|
||||
PUBLIC = 0x0001,
|
||||
/// Marked private in source.
|
||||
/// Marked private in source.
|
||||
PRIVATE = 0x0002,
|
||||
/// Marked protected in source.
|
||||
/// Marked protected in source.
|
||||
PROTECTED = 0x0004,
|
||||
/// Marked or implicitly static in source.
|
||||
/// Marked or implicitly static in source.
|
||||
STATIC = 0x0008,
|
||||
/// Marked final in source.
|
||||
/// Marked final in source.
|
||||
FINAL = 0x0010,
|
||||
/// Was an interface in source.
|
||||
/// Was an interface in source.
|
||||
INTERFACE = 0x0200,
|
||||
/// Marked or implicitly abstract in source.
|
||||
/// Marked or implicitly abstract in source.
|
||||
ABSTRACT = 0x0400,
|
||||
/// Declared synthetic; not present in the source code.
|
||||
/// Declared synthetic; not present in the source code.
|
||||
SYNTHETIC = 0x1000,
|
||||
/// Declared as an annotation type.
|
||||
/// Declared as an annotation type.
|
||||
ANNOTATION = 0x2000,
|
||||
/// Declared as an enum type.
|
||||
ENUM = 0x4000,
|
||||
|
|
@ -523,22 +523,22 @@ pub enum InnerClassAccessFlags {
|
|||
#[repr(u16)]
|
||||
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
|
||||
pub enum FieldAccessFlags {
|
||||
/// Declared public; may be accessed from outside its package.
|
||||
/// Declared public; may be accessed from outside its package.
|
||||
PUBLIC = 0x0001,
|
||||
/// Declared private; usable only within the defining class.
|
||||
/// Declared private; usable only within the defining class.
|
||||
PRIVATE = 0x0002,
|
||||
/// Declared protected; may be accessed within subclasses.
|
||||
/// Declared protected; may be accessed within subclasses.
|
||||
PROTECTED = 0x0004,
|
||||
/// Declared static.
|
||||
/// Declared static.
|
||||
STATIC = 0x0008,
|
||||
/// Declared final; never directly assigned to after object construction (JLS §17.5).
|
||||
/// Declared final; never directly assigned to after object construction (JLS §17.5).
|
||||
FINAL = 0x0010,
|
||||
/// Declared volatile; cannot be cached.
|
||||
/// Declared volatile; cannot be cached.
|
||||
VOLATILE = 0x0040,
|
||||
/// Declared transient; not written or read by a persistent object manager.
|
||||
/// Declared transient; not written or read by a persistent object manager.
|
||||
TRANSIENT = 0x0080,
|
||||
/// Declared synthetic; not present in the source code.
|
||||
/// Declared synthetic; not present in the source code.
|
||||
SYNTHETIC = 0x1000,
|
||||
/// Declared as an element of an enum.
|
||||
/// Declared as an element of an enum.
|
||||
ENUM = 0x4000,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue