osqp 0.4.1 → 0.4.2

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: 1e146965f2438ae0573b8c96e3db75ea93698909fe2d6d03b8c03c0943d37b11
4
- data.tar.gz: 5d626037990f92d81be5b8b555a19f03b175e0bf77de6706cec883cd1a1b35d6
3
+ metadata.gz: 466fcea42dc4aa67e6dff59d023e3960fe3d8bc75b6da18db639f0a526d8b378
4
+ data.tar.gz: cb8ba195ab795846d9a9663488a7a89e969172b76f93a9364394467b80d2035a
5
5
  SHA512:
6
- metadata.gz: 6e02b4c79b5b04e01e05c15c267300e06a69449fa262f82a69c0c3c8ccfae5f17e702d52ef6f5189f0344d4132bda3ff06a293294f122620a55417bf030d2d1c
7
- data.tar.gz: ef9a8790844d94b93b92b7687ea27e70f1473dd2eac4c4a5ab14720cac395f88a7ca177a9450c521f2ba90f9900a48b83e6a65a57011359aba18e16647326c53
6
+ metadata.gz: 2f1e6ee9cb503ff53022f27e5ca511e3b590866ec197fd421549b24a38f6f6ccf70ff6724650b427a663ec5ebe5f33d785257e786d919191cf82d4f96d12f1e3
7
+ data.tar.gz: fe1f3af18ab7c4d2685c473483288224627f1093859dcbb4fd300adef899aeece032ec983889e1975d96d1af015a522027d4c23970333f3d9a6bedde0b37e354
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.4.2 (2026-02-27)
2
+
3
+ - Fixed memory leak with exceptions
4
+
1
5
  ## 0.4.1 (2025-04-26)
2
6
 
3
7
  - Fixed memory leaks
data/lib/osqp/solver.rb CHANGED
@@ -17,8 +17,13 @@ module OSQP
17
17
  u = float_array(u)
18
18
 
19
19
  # work
20
- work_ptr = Fiddle::Pointer.malloc(Fiddle::SIZEOF_VOIDP, Fiddle::RUBY_FREE)
21
- check_result FFI.osqp_setup(work_ptr, matrix_ptr(p), q, matrix_ptr(a), l, u, a.m, a.n, set)
20
+ work_ptr = Fiddle::Pointer["\x00" * Fiddle::SIZEOF_VOIDP]
21
+ begin
22
+ check_result FFI.osqp_setup(work_ptr, matrix_ptr(p), q, matrix_ptr(a), l, u, a.m, a.n, set)
23
+ rescue => e
24
+ FFI.osqp_cleanup(work_ptr.ptr) unless work_ptr.ptr.null?
25
+ raise e
26
+ end
22
27
  work = work_ptr.ptr
23
28
  work.free = FFI["osqp_cleanup"]
24
29
  @work = FFI::Solver.new(work)
data/lib/osqp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OSQP
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: osqp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
@@ -80,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  requirements: []
83
- rubygems_version: 3.6.7
83
+ rubygems_version: 4.0.3
84
84
  specification_version: 4
85
85
  summary: OSQP (Operator Splitting Quadratic Program) solver for Ruby
86
86
  test_files: []