Skip to content

Commit

Permalink
-fixes to ring buffer (fixes network error)
Browse files Browse the repository at this point in the history
-fixes to invalid disabling of commands on scene tree dock
  • Loading branch information
reduz committed Oct 21, 2015
1 parent b59c86f commit 35959f9
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 8 deletions.
5 changes: 4 additions & 1 deletion core/io/marshalls.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@ Error decode_variant(Variant& r_variant,const uint8_t *p_buffer, int p_len,int *
const uint8_t * buf=p_buffer;
int len=p_len;

ERR_FAIL_COND_V(len<4,ERR_INVALID_DATA);
if (len<4) {

ERR_FAIL_COND_V(len<4,ERR_INVALID_DATA);
}


uint32_t type=decode_uint32(buf);
Expand Down
3 changes: 1 addition & 2 deletions core/io/packet_peer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,6 @@ Error PacketPeerStream::_poll_buffer() const {
Error err = peer->get_partial_data(&temp_buffer[0], ring_buffer.space_left(), read);
if (err)
return err;

if (read==0)
return OK;

Expand Down Expand Up @@ -202,7 +201,7 @@ Error PacketPeerStream::get_packet(const uint8_t **r_buffer,int &r_buffer_size)
uint8_t lbuf[4];
ring_buffer.copy(lbuf,0,4);
remaining-=4;
uint32_t len = decode_uint32(lbuf);
uint32_t len = decode_uint32(lbuf);
ERR_FAIL_COND_V(remaining<(int)len,ERR_UNAVAILABLE);

ring_buffer.read(lbuf,4); //get rid of first 4 bytes
Expand Down
8 changes: 4 additions & 4 deletions core/ring_buffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,15 @@ class RingBuffer {
inline int space_left() {
int left = read_pos - write_pos;
if (left < 0) {
return size() + left;
return size() + left - 1;
};
if (left == 0) {
return size();
return size()-1;
};
return left;
return left -1;
};
inline int data_left() {
return size() - space_left();
return size() - space_left() - 1;
};

inline int size() {
Expand Down
3 changes: 2 additions & 1 deletion tools/editor/scene_tree_dock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1088,7 +1088,8 @@ void SceneTreeDock::_delete_confirm() {
void SceneTreeDock::_update_tool_buttons() {

Node *sel = scene_tree->get_selected();
bool disable = !sel || (sel!=edited_scene && sel->get_owner()!=edited_scene) || (edited_scene->get_scene_instance_state().is_valid() && edited_scene->get_scene_instance_state()->find_node_by_path(edited_scene->get_path_to(sel))>=0);
bool disable = !sel || (sel!=edited_scene && sel->get_owner()!=edited_scene);
disable = disable || (edited_scene->get_scene_inherited_state().is_valid() && edited_scene->get_scene_inherited_state()->find_node_by_path(edited_scene->get_path_to(sel))>=0);
bool disable_root = disable || sel->get_parent()==scene_root;
bool disable_edit = !sel;

Expand Down

0 comments on commit 35959f9

Please sign in to comment.