Changeset 71ca5b9 for libcfa


Ignore:
Timestamp:
Jan 28, 2025, 12:19:23 PM (3 months ago)
Author:
kyoung <lseo@…>
Branches:
master
Children:
bada452
Parents:
c3d0182a
git-author:
kyoung <lseo@…> (01/28/25 00:17:49)
git-committer:
kyoung <lseo@…> (01/28/25 12:19:23)
Message:

perform proper casting before pointer arithmetic

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified libcfa/src/concurrency/future.hfa

    rc3d0182a r71ca5b9  
    260260                        if( this.has_first != false) abort("Attempting to reset a multi_future with at least one blocked threads");
    261261                        if( !is_empty(this.blocked) ) abort("Attempting to reset a multi_future with multiple blocked threads");
    262                         reset( (future_t&)*(&this+sizeof(monitor$)) );
     262                        reset( (future_t&)*(future_t*)((uintptr_t)&this + sizeof(monitor$)) );
    263263                }
    264264
     
    266266                bool fulfil( multi_future(T) & this, T result ) {
    267267                        this.result = result;
    268                         return fulfil( (future_t&)*(&this+sizeof(monitor$)) ) != 0p;
     268                        return fulfil( (future_t&)*(future_t*)((uintptr_t)&this + sizeof(monitor$)) ) != 0p;
    269269                }
    270270
     
    275275                        bool w = !sw;
    276276                        if ( sw ) {
    277                                 w = wait( (future_t&)*(&this+sizeof(monitor$)) );
     277                                w = wait( (future_t&)*(future_t*)((uintptr_t)&this + sizeof(monitor$)) );
    278278                                $first_done( this );
    279279                        }
Note: See TracChangeset for help on using the changeset viewer.