Browse Source

Add wrapper for rb_set_safe_level

This resolves FTBFS with Ruby 2.2
This resolves Bug 2467

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
(cherry picked from commit 0c09c41f99)
tags/r14.0.3
Slávek Banko 4 years ago
parent
commit
fac1196282
5 changed files with 66 additions and 6 deletions
  1. +2
    -2
      lib/kross/ruby/Makefile.am
  2. +1
    -1
      lib/kross/ruby/rubyconfig.h
  3. +4
    -3
      lib/kross/ruby/rubyinterpreter.cpp
  4. +24
    -0
      lib/kross/ruby/rubywrapper.c
  5. +35
    -0
      lib/kross/ruby/rubywrapper.h

+ 2
- 2
lib/kross/ruby/Makefile.am View File

@@ -12,5 +12,5 @@ krossruby_la_LIBADD = \
../api/libkrossapi.la \
../main/libkrossmain.la

noinst_HEADERS = rubyinterpreter.h rubyextension.h rubyscript.h rubyconfig.h
krossruby_la_SOURCES = rubyinterpreter.cpp rubyextension.cpp rubyscript.cpp rubymodule.cpp
noinst_HEADERS = rubyconfig.h rubyinterpreter.h rubyextension.h rubyscript.h rubywrapper.h
krossruby_la_SOURCES = rubyinterpreter.cpp rubyextension.cpp rubyscript.cpp rubymodule.cpp rubywrapper.c

+ 1
- 1
lib/kross/ruby/rubyconfig.h View File

@@ -1,5 +1,5 @@
/***************************************************************************
* pythonconfig.h
* rubyconfig.h
* This file is part of the KDE project
* copyright (C)2005 by Cyrille Berger (cberger@cberger.net)
*

+ 4
- 3
lib/kross/ruby/rubyinterpreter.cpp View File

@@ -31,6 +31,7 @@
#include "rubyextension.h"
#include "rubymodule.h"
#include "rubyscript.h"
#include "rubywrapper.h"

extern "C"
{
@@ -72,7 +73,7 @@ class RubyInterpreterPrivate {
VALUE RubyInterpreterPrivate::s_krossModule = 0;

RubyInterpreterPrivate* RubyInterpreter::d = 0;
RubyInterpreter::RubyInterpreter(Kross::Api::InterpreterInfo* info): Kross::Api::Interpreter(info)
{
#ifdef KROSS_RUBY_INTERPRETER_DEBUG
@@ -84,9 +85,9 @@ RubyInterpreter::RubyInterpreter(Kross::Api::InterpreterInfo* info): Kross::Api:
}
if(info->hasOption("safelevel") )
{
rb_set_safe_level( info->getOption("safelevel")->value.toInt() );
kross_rb_set_safe_level( info->getOption("safelevel")->value.toInt() );
} else {
rb_set_safe_level(3); // if the safelevel option is undefined, set it to maximum level
kross_rb_set_safe_level(3); // if the safelevel option is undefined, set it to maximum level
}
}


+ 24
- 0
lib/kross/ruby/rubywrapper.c View File

@@ -0,0 +1,24 @@
/***************************************************************************
* rubywrapper.c
* This file is part of the TDE project
* copyright (C)2015 by Slávek Banko (slavek.banko@axis.cz)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
* You should have received a copy of the GNU Library General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
***************************************************************************/

#include "ruby.h"

void kross_rb_set_safe_level(int safelevel) {
rb_set_safe_level(safelevel);
}

+ 35
- 0
lib/kross/ruby/rubywrapper.h View File

@@ -0,0 +1,35 @@
/***************************************************************************
* rubywrapper.h
* This file is part of the TDE project
* copyright (C)2015 by Slávek Banko (slavek.banko@axis.cz)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
* You should have received a copy of the GNU Library General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
***************************************************************************/

#ifndef KROSS_RUBYWRAPPER_H
#define KROSS_RUBYWRAPPER_H

#if defined(__cplusplus)
extern "C" {
#endif


void kross_rb_set_safe_level(int safelevel);


#if defined(__cplusplus)
}
#endif

#endif // KROSS_RUBYWRAPPER_H

Loading…
Cancel
Save