From d1c47f32e86b8dad25bb50bdc4db0c9630a9ee5d Mon Sep 17 00:00:00 2001 From: Tom Beech Date: Thu, 25 Mar 2021 09:07:54 -0700 Subject: [PATCH] Avoid redefinition of struct layout This adds a guard that prevents the redefinition of the `GSSAPI::LibGSSAPI::GssOID` struct's layout. Previously, the class would call the `layout` method and redefine the layout each time the class was referenced. This behavior is deprecated in FFI >= 1.12.0 and will be disallowed in FFI >= 2.0. --- lib/gssapi/lib_gssapi_loader.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/gssapi/lib_gssapi_loader.rb b/lib/gssapi/lib_gssapi_loader.rb index ae0526c..5164ebd 100644 --- a/lib/gssapi/lib_gssapi_loader.rb +++ b/lib/gssapi/lib_gssapi_loader.rb @@ -7,8 +7,8 @@ module GSSAPI module LibGSSAPI class GssOID < FFI::Struct - layout :length, :OM_uint32, - :elements, :pointer # pointer of :void + # pointer of :void + layout(:length, :OM_uint32, :elements, :pointer) unless defined? @layout def self.gss_c_no_oid self.new(GSSAPI::LibGSSAPI::GSS_C_NO_OID)