[apktool] 08/08: Add LEDataInputStream.java.patch

Markus Koschany apo-guest at moszumanska.debian.org
Tue Feb 16 12:05:20 GMT 2016


This is an automated email from the git hooks/post-receive script.

apo-guest pushed a commit to branch master
in repository apktool.

commit 0f456d20340f5a1b15dc56fc163e073ca52a3f8f
Author: Markus Koschany <apo at debian.org>
Date:   Tue Feb 16 12:48:52 2016 +0100

    Add LEDataInputStream.java.patch
---
 debian/patches/LEDataInputStream.java.patch | 201 ++++++++++++++++++++++++++++
 debian/patches/series                       |   1 +
 2 files changed, 202 insertions(+)

diff --git a/debian/patches/LEDataInputStream.java.patch b/debian/patches/LEDataInputStream.java.patch
new file mode 100644
index 0000000..2dd33a5
--- /dev/null
+++ b/debian/patches/LEDataInputStream.java.patch
@@ -0,0 +1,201 @@
+From: Markus Koschany <apo at debian.org>
+Date: Tue, 16 Feb 2016 12:48:39 +0100
+Subject: LEDataInputStream.java
+
+---
+ .../mindprod/ledatastream/LEDataInputStream.java   | 186 +++++++++++++++++++++
+ 1 file changed, 186 insertions(+)
+ create mode 100644 brut.apktool/apktool-lib/src/main/java/com/mindprod/ledatastream/LEDataInputStream.java
+
+diff --git a/brut.apktool/apktool-lib/src/main/java/com/mindprod/ledatastream/LEDataInputStream.java b/brut.apktool/apktool-lib/src/main/java/com/mindprod/ledatastream/LEDataInputStream.java
+new file mode 100644
+index 0000000..293cb1d
+--- /dev/null
++++ b/brut.apktool/apktool-lib/src/main/java/com/mindprod/ledatastream/LEDataInputStream.java
+@@ -0,0 +1,186 @@
++/*******************************************************************************
++ * Copyright (c) 2000, 2011 IBM Corporation and others.
++ * All rights reserved. This program and the accompanying materials
++ * are made available under the terms of the Eclipse Public License v1.0
++ * which accompanies this distribution, and is available at
++ * http://www.eclipse.org/legal/epl-v10.html
++ *
++ * Contributors:
++ *     IBM Corporation - initial API and implementation
++ *******************************************************************************/
++package com.mindprod.ledatastream;
++
++
++import java.io.*;
++
++public final class LEDataInputStream extends InputStream {
++	int position;
++	InputStream in;
++
++	/**
++	 * The byte array containing the bytes to read.
++	 */
++	protected byte[] buf;
++	
++	/**
++	 * The current position within the byte array <code>buf</code>. A value
++	 * equal to buf.length indicates no bytes available.  A value of
++	 * 0 indicates the buffer is full.
++	 */
++	protected int pos;
++	
++
++	public LEDataInputStream(InputStream input) {
++		this(input, 512);
++	}
++	
++	public LEDataInputStream(InputStream input, int bufferSize) {
++		this.in = input;
++		if (bufferSize > 0) {
++			buf = new byte[bufferSize];
++			pos = bufferSize;
++		} 
++		else throw new IllegalArgumentException();
++	}
++	
++	public void close() throws IOException {
++		buf = null;
++		if (in != null) {
++			in.close();
++			in = null;
++		}
++	}
++	
++	/**
++	 * Answer how many bytes were read.
++	 */
++	public int getPosition() {
++		return position;
++	}
++	
++	/**
++	 * Answers how many bytes are available for reading without blocking
++	 */
++	public int available() throws IOException {
++		if (buf == null) throw new IOException();
++		return (buf.length - pos) + in.available();
++	}
++	
++	/**
++	 * Answer the next byte of the input stream.
++	 */
++	public int read() throws IOException {
++		if (buf == null) throw new IOException();
++		if (pos < buf.length) {
++			position++;
++			return (buf[pos++] & 0xFF);
++		}
++		int c = in.read();
++		if (c != -1) position++;
++		return c;
++	}
++	
++	/**
++	 * Don't imitate the JDK behaviour of reading a random number
++	 * of bytes when you can actually read them all.
++	 */
++	public int read(byte b[], int off, int len) throws IOException {
++		int read = 0, count;
++		while (read != len && (count = readData(b, off, len - read)) != -1) {
++			off += count;
++			read += count;
++		}
++		position += read;
++		if (read == 0 && read != len) return -1;
++		return read;
++	}
++	
++	/**
++ 	 * Reads at most <code>length</code> bytes from this LEDataInputStream and 
++ 	 * stores them in byte array <code>buffer</code> starting at <code>offset</code>.
++ 	 * <p>
++ 	 * Answer the number of bytes actually read or -1 if no bytes were read and 
++ 	 * end of stream was encountered.  This implementation reads bytes from 
++ 	 * the pushback buffer first, then the target stream if more bytes are required
++ 	 * to satisfy <code>count</code>.
++	 * </p>
++	 * @param buffer the byte array in which to store the read bytes.
++	 * @param offset the offset in <code>buffer</code> to store the read bytes.
++	 * @param length the maximum number of bytes to store in <code>buffer</code>.
++	 *
++	 * @return int the number of bytes actually read or -1 if end of stream.
++	 *
++	 * @exception java.io.IOException if an IOException occurs.
++	 */
++	private int readData(byte[] buffer, int offset, int length) throws IOException {
++		if (buf == null) throw new IOException();
++		if (offset < 0 || offset > buffer.length ||
++  		 	length < 0 || (length > buffer.length - offset)) {
++	 		throw new ArrayIndexOutOfBoundsException();
++		 	}
++				
++		int cacheCopied = 0;
++		int newOffset = offset;
++	
++		// Are there pushback bytes available?
++		int available = buf.length - pos;
++		if (available > 0) {
++			cacheCopied = (available >= length) ? length : available;
++			System.arraycopy(buf, pos, buffer, newOffset, cacheCopied);
++			newOffset += cacheCopied;
++			pos += cacheCopied;
++		}
++	
++		// Have we copied enough?
++		if (cacheCopied == length) return length;
++
++		int inCopied = in.read(buffer, newOffset, length - cacheCopied);
++
++		if (inCopied > 0) return inCopied + cacheCopied;
++		if (cacheCopied == 0) return inCopied;
++		return cacheCopied;
++	}
++	
++	/**
++	 * Answer an integer comprised of the next
++	 * four bytes of the input stream.
++	 */
++	public int readInt() throws IOException {
++		byte[] buf = new byte[4];
++		read(buf);
++		return ((buf[3] & 0xFF) << 24) | 
++			((buf[2] & 0xFF) << 16) | 
++			((buf[1] & 0xFF) << 8) | 
++			(buf[0] & 0xFF);
++	}
++	
++	/**
++	 * Answer a short comprised of the next
++	 * two bytes of the input stream.
++	 */
++	public short readShort() throws IOException {
++		byte[] buf = new byte[2];
++		read(buf);
++		return (short)(((buf[1] & 0xFF) << 8) | (buf[0] & 0xFF));
++	}
++	
++	/**
++	 * Push back the entire content of the given buffer <code>b</code>.
++	 * <p>
++	 * The bytes are pushed so that they would be read back b[0], b[1], etc. 
++	 * If the push back buffer cannot handle the bytes copied from <code>b</code>, 
++	 * an IOException will be thrown and no byte will be pushed back.
++	 * </p>
++	 * 
++	 * @param b the byte array containing bytes to push back into the stream
++	 *
++	 * @exception 	java.io.IOException if the pushback buffer is too small
++	 */
++	public void unread(byte[] b) throws IOException {
++		int length = b.length;
++		if (length > pos) throw new IOException();
++		position -= length;
++		pos -= length;
++		System.arraycopy(b, 0, buf, pos, length);
++	}
++}
diff --git a/debian/patches/series b/debian/patches/series
index 0f1d6c2..90d6b09 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 use_system_aapt.patch
 build.patch
+LEDataInputStream.java.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/apktool.git



More information about the pkg-java-commits mailing list