Skip to content

Commit 3083459

Browse files
Copilotapss-pohl
andcommitted
Add type checking to text/markup/tooltip/icon methods from main.cpp review
Co-authored-by: apss-pohl <95089598+apss-pohl@users.noreply.github.com>
1 parent b3de0c4 commit 3083459

14 files changed

+138
-0
lines changed

src/Gtk/GtkClipboard.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,12 @@ void GtkClipboard_::clear()
114114

115115
void GtkClipboard_::set_text(Php::Parameters &parameters)
116116
{
117+
if (!parameters[0].isString()) {
118+
std::string error_msg = "GtkClipboard::set_text: First parameter (text) must be a string, ";
119+
error_msg += phpgtk_type_to_string(parameters[0].type());
120+
error_msg += " given";
121+
throw Php::Exception(error_msg);
122+
}
117123
std::string s_text = parameters[0];
118124
gchar *text = (gchar *)s_text.c_str();
119125

src/Gtk/GtkComboBoxText.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ void GtkComboBoxText_::insert(Php::Parameters &parameters)
6666

6767
void GtkComboBoxText_::append_text(Php::Parameters &parameters)
6868
{
69+
if (!parameters[0].isString()) {
70+
std::string error_msg = "GtkComboBoxText::append_text: First parameter (text) must be a string, ";
71+
error_msg += phpgtk_type_to_string(parameters[0].type());
72+
error_msg += " given";
73+
throw Php::Exception(error_msg);
74+
}
6975
std::string s_text = parameters[0];
7076
gchar *text = (gchar *)s_text.c_str();
7177

@@ -75,6 +81,12 @@ void GtkComboBoxText_::append_text(Php::Parameters &parameters)
7581

7682
void GtkComboBoxText_::prepend_text(Php::Parameters &parameters)
7783
{
84+
if (!parameters[0].isString()) {
85+
std::string error_msg = "GtkComboBoxText::prepend_text: First parameter (text) must be a string, ";
86+
error_msg += phpgtk_type_to_string(parameters[0].type());
87+
error_msg += " given";
88+
throw Php::Exception(error_msg);
89+
}
7890
std::string s_text = parameters[0];
7991
gchar *text = (gchar *)s_text.c_str();
8092

@@ -86,6 +98,12 @@ void GtkComboBoxText_::insert_text(Php::Parameters &parameters)
8698
{
8799
gint position = (gint)parameters[0];
88100

101+
if (!parameters[1].isString()) {
102+
std::string error_msg = "GtkComboBoxText::insert_text: Second parameter (text) must be a string, ";
103+
error_msg += phpgtk_type_to_string(parameters[1].type());
104+
error_msg += " given";
105+
throw Php::Exception(error_msg);
106+
}
89107
std::string s_text = parameters[1];
90108
gchar *text = (gchar *)s_text.c_str();
91109

src/Gtk/GtkEntry.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@ Php::Value GtkEntry_::get_text()
6868
*/
6969
void GtkEntry_::set_text(Php::Parameters &parameters)
7070
{
71+
if (!parameters[0].isString()) {
72+
std::string error_msg = "GtkEntry::set_text: First parameter (text) must be a string, ";
73+
error_msg += phpgtk_type_to_string(parameters[0].type());
74+
error_msg += " given";
75+
throw Php::Exception(error_msg);
76+
}
7177
std::string text = parameters[0];
7278
gtk_entry_set_text(GTK_ENTRY(instance), text.c_str());
7379
}

src/Gtk/GtkEntryBuffer.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ Php::Value GtkEntryBuffer_::get_text()
5454
void GtkEntryBuffer_::set_text(Php::Parameters &parameters)
5555
{
5656
// Cast the param
57+
if (!parameters[0].isString()) {
58+
std::string error_msg = "GtkEntryBuffer::set_text: First parameter (text) must be a string, ";
59+
error_msg += phpgtk_type_to_string(parameters[0].type());
60+
error_msg += " given";
61+
throw Php::Exception(error_msg);
62+
}
5763
std::string passed_text = parameters[0];
5864
gchar *text = (gchar *)passed_text.c_str();
5965

src/Gtk/GtkLabel.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ void GtkLabel_::__construct(Php::Parameters &parameters)
3030

3131
void GtkLabel_::set_text(Php::Parameters &parameters)
3232
{
33+
if (!parameters[0].isString()) {
34+
std::string error_msg = "GtkLabel::set_text: First parameter (text) must be a string, ";
35+
error_msg += phpgtk_type_to_string(parameters[0].type());
36+
error_msg += " given";
37+
throw Php::Exception(error_msg);
38+
}
3339
std::string s_str = parameters[0];
3440
gchar *str = (gchar *)s_str.c_str();
3541

@@ -39,6 +45,12 @@ void GtkLabel_::set_text(Php::Parameters &parameters)
3945

4046
void GtkLabel_::set_markup(Php::Parameters &parameters)
4147
{
48+
if (!parameters[0].isString()) {
49+
std::string error_msg = "GtkLabel::set_markup: First parameter (markup) must be a string, ";
50+
error_msg += phpgtk_type_to_string(parameters[0].type());
51+
error_msg += " given";
52+
throw Php::Exception(error_msg);
53+
}
4254
std::string s_str = parameters[0];
4355
gchar *str = (gchar *)s_str.c_str();
4456

@@ -48,6 +60,12 @@ void GtkLabel_::set_markup(Php::Parameters &parameters)
4860

4961
void GtkLabel_::set_markup_with_mnemonic(Php::Parameters &parameters)
5062
{
63+
if (!parameters[0].isString()) {
64+
std::string error_msg = "GtkLabel::set_markup_with_mnemonic: First parameter (markup) must be a string, ";
65+
error_msg += phpgtk_type_to_string(parameters[0].type());
66+
error_msg += " given";
67+
throw Php::Exception(error_msg);
68+
}
5169
std::string s_str = parameters[0];
5270
gchar *str = (gchar *)s_str.c_str();
5371

@@ -176,6 +194,12 @@ void GtkLabel_::set_selectable(Php::Parameters &parameters)
176194

177195
void GtkLabel_::set_text_with_mnemonic(Php::Parameters &parameters)
178196
{
197+
if (!parameters[0].isString()) {
198+
std::string error_msg = "GtkLabel::set_text_with_mnemonic: First parameter (text) must be a string, ";
199+
error_msg += phpgtk_type_to_string(parameters[0].type());
200+
error_msg += " given";
201+
throw Php::Exception(error_msg);
202+
}
179203
std::string s_str = parameters[0];
180204
gchar *str = (gchar *)s_str.c_str();
181205

src/Gtk/GtkMessageDialog.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ Php::Value GtkMessageDialog_::new_with_markup(Php::Parameters &parameters)
8181

8282
void GtkMessageDialog_::set_markup(Php::Parameters &parameters)
8383
{
84+
if (!parameters[0].isString()) {
85+
std::string error_msg = "GtkMessageDialog::set_markup: First parameter (markup) must be a string, ";
86+
error_msg += phpgtk_type_to_string(parameters[0].type());
87+
error_msg += " given";
88+
throw Php::Exception(error_msg);
89+
}
8490
std::string s_str = parameters[0];
8591
gchar *str = (gchar *)s_str.c_str();
8692

src/Gtk/GtkProgressBar.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,12 @@ Php::Value GtkProgressBar_::get_show_text()
7070

7171
void GtkProgressBar_::set_text(Php::Parameters &parameters)
7272
{
73+
if (!parameters[0].isString()) {
74+
std::string error_msg = "GtkProgressBar::set_text: First parameter (text) must be a string, ";
75+
error_msg += phpgtk_type_to_string(parameters[0].type());
76+
error_msg += " given";
77+
throw Php::Exception(error_msg);
78+
}
7379
std::string s_text = parameters[0];
7480
gchar *text = (gchar *)s_text.c_str();
7581

src/Gtk/GtkStatusIcon.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,12 @@ void GtkStatusIcon_::set_has_tooltip(Php::Parameters &parameters)
176176

177177
void GtkStatusIcon_::set_tooltip_text(Php::Parameters &parameters)
178178
{
179+
if (!parameters[0].isString()) {
180+
std::string error_msg = "GtkStatusIcon::set_tooltip_text: First parameter (text) must be a string, ";
181+
error_msg += phpgtk_type_to_string(parameters[0].type());
182+
error_msg += " given";
183+
throw Php::Exception(error_msg);
184+
}
179185
std::string c_text = parameters[0];
180186

181187
gchar *text = (gchar *)c_text.c_str();
@@ -185,6 +191,12 @@ void GtkStatusIcon_::set_tooltip_text(Php::Parameters &parameters)
185191

186192
void GtkStatusIcon_::set_tooltip_markup(Php::Parameters &parameters)
187193
{
194+
if (!parameters[0].isString()) {
195+
std::string error_msg = "GtkStatusIcon::set_tooltip_markup: First parameter (markup) must be a string, ";
196+
error_msg += phpgtk_type_to_string(parameters[0].type());
197+
error_msg += " given";
198+
throw Php::Exception(error_msg);
199+
}
188200
std::string c_markup = parameters[0];
189201

190202
gchar *markup = (gchar *)c_markup.c_str();

src/Gtk/GtkTextBuffer.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,12 @@ Php::Value GtkTextBuffer_::backspace(Php::Parameters &parameters)
284284

285285
void GtkTextBuffer_::set_text(Php::Parameters &parameters)
286286
{
287+
if (!parameters[0].isString()) {
288+
std::string error_msg = "GtkTextBuffer::set_text: First parameter (text) must be a string, ";
289+
error_msg += phpgtk_type_to_string(parameters[0].type());
290+
error_msg += " given";
291+
throw Php::Exception(error_msg);
292+
}
287293
std::string s_text = parameters[0];
288294
gchar *text = (gchar *)s_text.c_str();
289295

src/Gtk/GtkToolButton.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,12 @@ Php::Value GtkToolButton_::get_use_underline()
6060

6161
void GtkToolButton_::set_icon_name(Php::Parameters &parameters)
6262
{
63+
if (!parameters[0].isString()) {
64+
std::string error_msg = "GtkToolButton::set_icon_name: First parameter (icon_name) must be a string, ";
65+
error_msg += phpgtk_type_to_string(parameters[0].type());
66+
error_msg += " given";
67+
throw Php::Exception(error_msg);
68+
}
6369
std::string s_icon_name = parameters[0];
6470
gchar *icon_name = (gchar *)s_icon_name.c_str();
6571

0 commit comments

Comments
 (0)