766a4d0838
- Drop @dirrm* from plist Approved by: portmgr blanket
56 lines
2.1 KiB
C++
56 lines
2.1 KiB
C++
--- radiant/treemodel.cpp.orig 2013-06-30 14:04:35 UTC
|
|
+++ radiant/treemodel.cpp
|
|
@@ -647,7 +647,12 @@ void detach( const NameCallback& callbac
|
|
};
|
|
|
|
void node_attach_name_changed_callback( scene::Node& node, const NameCallback& callback ){
|
|
- if ( &node != 0 ) {
|
|
+ // Reference cannot be bound to dereferenced null pointer in a
|
|
+ // well-defined C++ code, and Clang will assume that comparison
|
|
+ // below always evaluates to true, resulting in segmentation
|
|
+ // fault. Use a dirty hack to force Clang to check for null.
|
|
+ volatile intptr_t n = (intptr_t)&node;
|
|
+ if ( n != 0 ) {
|
|
Nameable* nameable = Node_getNameable( node );
|
|
if ( nameable != 0 ) {
|
|
nameable->attach( callback );
|
|
@@ -655,7 +660,8 @@ void node_attach_name_changed_callback(
|
|
}
|
|
}
|
|
void node_detach_name_changed_callback( scene::Node& node, const NameCallback& callback ){
|
|
- if ( &node != 0 ) {
|
|
+ volatile intptr_t n = (intptr_t)&node; // see the comment on line 650
|
|
+ if ( n != 0 ) {
|
|
Nameable* nameable = Node_getNameable( node );
|
|
if ( nameable != 0 ) {
|
|
nameable->detach( callback );
|
|
@@ -1124,7 +1130,8 @@ void graph_tree_model_row_deleted( Graph
|
|
const char* node_get_name( scene::Node& node );
|
|
|
|
const char* node_get_name_safe( scene::Node& node ){
|
|
- if ( &node == 0 ) {
|
|
+ volatile intptr_t n = (intptr_t)&node; // see the comment on line 650
|
|
+ if ( n == 0 ) {
|
|
return "";
|
|
}
|
|
return node_get_name( node );
|
|
@@ -1142,7 +1149,8 @@ GraphTreeNode* graph_tree_model_find_par
|
|
}
|
|
|
|
void node_attach_name_changed_callback( scene::Node& node, const NameCallback& callback ){
|
|
- if ( &node != 0 ) {
|
|
+ volatile intptr_t n = (intptr_t)&node; // see the comment on line 650
|
|
+ if ( n != 0 ) {
|
|
Nameable* nameable = Node_getNameable( node );
|
|
if ( nameable != 0 ) {
|
|
nameable->attach( callback );
|
|
@@ -1150,7 +1158,8 @@ void node_attach_name_changed_callback(
|
|
}
|
|
}
|
|
void node_detach_name_changed_callback( scene::Node& node, const NameCallback& callback ){
|
|
- if ( &node != 0 ) {
|
|
+ volatile intptr_t n = (intptr_t)&node; // see the comment on line 650
|
|
+ if ( n != 0 ) {
|
|
Nameable* nameable = Node_getNameable( node );
|
|
if ( nameable != 0 ) {
|
|
nameable->detach( callback );
|