| 473 | } |
| 474 | |
| 475 | bool WaylandClient::close_buffer() |
| 476 | { |
| 477 | if (!connected_) { |
| 478 | if (buffer_) { |
| 479 | buffer_.reset(); // Close memfd only |
| 480 | } |
| 481 | return true; |
| 482 | } |
| 483 | |
| 484 | if (!buffer_) { |
| 485 | return true; |
| 486 | } |
| 487 | LogDebug << "Closing buffer" << VAR(buffer_); |
| 488 | buffer_obj_.reset(); |
| 489 | shm_pool_.reset(); |
| 490 | if (!process_requests()) { |
| 491 | LogError << "Failed to destroy buffer objects"; |
| 492 | return false; |
| 493 | } |
| 494 | buffer_.reset(); |
| 495 | return true; |
| 496 | } |
| 497 | |
| 498 | bool WaylandClient::prepare_keymap() |
| 499 | { |