ffi_libarchive 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea40988e363101b31876efb5e4e8d5cc7f22d100041b6a12d1b05d9477c5e355
4
- data.tar.gz: 19bd4862747b5e030cd69b85a564bb08e89c5f8cf25829a07a566ddae70990f0
3
+ metadata.gz: 21492e6683b6460c603231a3825914b51bfe4b8507b1bf4b952e40af0d3665c6
4
+ data.tar.gz: 53d12a414f22d5a8d9a55b57dbb1ba70c8996bfd7f63f8d5563a3eaf45d94675
5
5
  SHA512:
6
- metadata.gz: 80e6d241c8ac6daa7fa5a51cd2654a43f6d82b5d3de682f1c32b04d721f6124702d440c29953147a2dcc3e960b87fabc5cf643886a7b8f6a20dcdf07d282db0b
7
- data.tar.gz: 5bc8f0906c6cef9119c92a711761e6396cd9c4bf212188eb84bd67f1a957ceae281853f3a2c486708f763c2024a1f2a4f739a0a5a5c47ffea9056375505023dd
6
+ metadata.gz: '08f3839842727213f59b4ff5e6a63f42e21311217304403ff93afa184ec0be04256e2f233727f7c411549fc1daf8fdcba2dabad11823b235c6aed2f39d87a948'
7
+ data.tar.gz: 9a8ad741321c67a313dfc5fa00ca09e9c5842638850219009cff0ed742771ee018168e4c44171f0c013be78df4f9d65e33f10be389ef3c37b9273372689dc9ed
@@ -168,6 +168,13 @@ module Archive
168
168
  end
169
169
  end
170
170
 
171
+ def close
172
+ super
173
+ @read_callback = nil
174
+ @skip_callback = nil
175
+ @seek_callback = nil
176
+ end
177
+
171
178
  protected
172
179
 
173
180
  def init_compression(command)
@@ -196,7 +203,7 @@ module Archive
196
203
  end
197
204
 
198
205
  def init_for_stream(reader)
199
- read_callback = proc do |_ar, _client_data, buffer|
206
+ @read_callback = proc do |_ar, _client_data, buffer|
200
207
  # @type [String]
201
208
  data = reader.call
202
209
 
@@ -207,16 +214,16 @@ module Archive
207
214
  0
208
215
  end
209
216
  end
210
- raise Error, self if C.archive_read_set_read_callback(archive, read_callback) != C::OK
217
+ raise Error, self if C.archive_read_set_read_callback(archive, @read_callback) != C::OK
211
218
 
212
219
  if reader.respond_to?(:skip)
213
- skip_callback = proc { |_ar, _client_data, request| reader.skip(request) }
214
- raise Error, self if C.archive_read_set_skip_callback(archive, skip_callback) != C::OK
220
+ @skip_callback = proc { |_ar, _client_data, request| reader.skip(request) }
221
+ raise Error, self if C.archive_read_set_skip_callback(archive, @skip_callback) != C::OK
215
222
  end
216
223
 
217
224
  if reader.respond_to?(:seek)
218
- seek_callback = proc { |_ar, _client_data, offset, whence| reader.seek(offset, whence) }
219
- raise Error, self if C.archive_read_set_seek_callback(archive, seek_callback) != C::OK
225
+ @seek_callback = proc { |_ar, _client_data, offset, whence| reader.seek(offset, whence) }
226
+ raise Error, self if C.archive_read_set_seek_callback(archive, @seek_callback) != C::OK
220
227
  end
221
228
 
222
229
  # Required or open1 will segfault, even though the callback data is not used.
@@ -139,6 +139,11 @@ module Archive
139
139
  raise Error, self if C.archive_write_header(archive, entry.entry) != C::OK
140
140
  end
141
141
 
142
+ def close
143
+ super
144
+ @write_callback = nil
145
+ end
146
+
142
147
  protected
143
148
 
144
149
  def init_compression(compression)
@@ -166,13 +171,13 @@ module Archive
166
171
  def init_for_memory(memory)
167
172
  C.archive_write_set_bytes_in_last_block(archive, 1) if C.archive_write_get_bytes_in_last_block(archive) < 0
168
173
 
169
- write_callback = proc do |_ar, _client_data, buffer, length|
174
+ @write_callback = proc do |_ar, _client_data, buffer, length|
170
175
  memory << buffer.get_bytes(0, length)
171
176
  length
172
177
  end
173
178
 
174
179
  null_ptr = FFI::Pointer::NULL
175
- raise Error, self if C.archive_write_open(archive, null_ptr, null_ptr, write_callback, null_ptr) != C::OK
180
+ raise Error, self if C.archive_write_open(archive, null_ptr, null_ptr, @write_callback, null_ptr) != C::OK
176
181
  end
177
182
  end
178
183
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi_libarchive
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Bellone
@@ -85,7 +85,9 @@ dependencies:
85
85
  version: '0'
86
86
  description: |-
87
87
  This library provides Ruby FFI bindings to the well-known [libarchive library](https://www.libarchive.org/).
88
- *NOTE* This gem is refactored / optimized version of [ffi-libarchive](https://rubygems.org/gems/ffi-libarchive) with more tests to cover almost use-cases.
88
+
89
+
90
+ *NOTE* This gem is refactored / optimized version of [ffi-libarchive](https://rubygems.org/gems/ffi-libarchive) with more tests to cover almost use-cases.
89
91
  email:
90
92
  - jbellone@bloomberg.net
91
93
  - jamie@vialstudios.com