svn commit: r384241 - head/games/gtkradiant/files
Alexey Dokuchaev
danfe at FreeBSD.org
Sat Apr 18 17:10:28 UTC 2015
Author: danfe
Date: Sat Apr 18 17:10:26 2015
New Revision: 384241
URL: https://svnweb.freebsd.org/changeset/ports/384241
Log:
Oops, incomplete version of the patch was committed in r384239.
Modified:
head/games/gtkradiant/files/patch-radiant_treemodel.cpp
Modified: head/games/gtkradiant/files/patch-radiant_treemodel.cpp
==============================================================================
--- head/games/gtkradiant/files/patch-radiant_treemodel.cpp Sat Apr 18 16:39:18 2015 (r384240)
+++ head/games/gtkradiant/files/patch-radiant_treemodel.cpp Sat Apr 18 17:10:26 2015 (r384241)
@@ -1,37 +1,59 @@
--- radiant/treemodel.cpp.orig 2006-02-10 22:01:20 UTC
+++ radiant/treemodel.cpp
-@@ -1243,7 +1243,13 @@ const char* node_get_name(scene::Node& n
+@@ -710,7 +710,13 @@ public:
- const char* node_get_name_safe(scene::Node& node)
+ void node_attach_name_changed_callback(scene::Node& node, const NameCallback& callback)
{
-- if(&node == 0)
+- if(&node != 0)
+ // Reference cannot be bound to dereferenced null pointer in well-defined
+ // C++ code, and Clang will assume that comparison below always evaluates
-+ // to false, resulting in segmentation fault. Use a dirty hack to insist
-+ // that Clang checks it for null.
++ // to true, resulting in a segmentation fault. Use a dirty hack to force
++ // Clang to check those "bad" references for null nonetheless.
+ volatile int n = (int)&node;
+
++ if(n != 0)
+ {
+ Nameable* nameable = Node_getNameable(node);
+ if(nameable != 0)
+@@ -721,7 +727,9 @@ void node_attach_name_changed_callback(s
+ }
+ void node_detach_name_changed_callback(scene::Node& node, const NameCallback& callback)
+ {
+- if(&node != 0)
++ volatile int n = (int)&node; // see the comment on line 713
++
++ if(n != 0)
+ {
+ Nameable* nameable = Node_getNameable(node);
+ if(nameable != 0)
+@@ -1243,7 +1251,9 @@ const char* node_get_name(scene::Node& n
+
+ const char* node_get_name_safe(scene::Node& node)
+ {
+- if(&node == 0)
++ volatile int n = (int)&node; // see the comment on line 713
++
+ if(n == 0)
{
return "";
}
-@@ -1264,7 +1270,9 @@ GraphTreeNode* graph_tree_model_find_par
+@@ -1264,7 +1274,9 @@ GraphTreeNode* graph_tree_model_find_par
void node_attach_name_changed_callback(scene::Node& node, const NameCallback& callback)
{
- if(&node != 0)
-+ volatile int n = (int)&node; // see the comment on line 1246
++ volatile int n = (int)&node; // see the comment on line 713
+
+ if(n != 0)
{
Nameable* nameable = Node_getNameable(node);
if(nameable != 0)
-@@ -1275,7 +1283,9 @@ void node_attach_name_changed_callback(s
+@@ -1275,7 +1287,9 @@ void node_attach_name_changed_callback(s
}
void node_detach_name_changed_callback(scene::Node& node, const NameCallback& callback)
{
- if(&node != 0)
-+ volatile int n = (int)&node; // see the comment on line 1246
++ volatile int n = (int)&node; // see the comment on line 713
+
+ if(n != 0)
{
More information about the svn-ports-head
mailing list